本文介绍: 应用层协议原理、Web与HTTP、FTP。以上就是应用层的一些讲解分为两篇,上篇下篇,下篇后续会发。


前言

应用层协议原理、Web与HTTP、FTP。


一、应用层协议原理

1.网络应用体系结构

可能应用架构:

客户服务器(C/S)体系结构
在这里插入图片描述

对等体(P2P)体系结构
在这里插入图片描述

C/S和P2P体系结构的混合体

2.进程通信

进程:在主机运行应用程序

分布式进程通信需要解决问题
在这里插入图片描述

问题1:进程标示和寻址问题(服务用户

对进程进行编址:

问题2:传输层应用层提供服务是如何(服务)

传输层提供的服务-需要穿过层间的信息

传输层提供的服务-层间信息代表

TCP之上的套接字socket):

在这里插入图片描述

在这里插入图片描述

传输层提供服务-层间信息代表:

UDP之上的套接字socket):

在这里插入图片描述

套接字(socket):

  • 进程向套接字发送报文或从套接字接收报文
  • 套接字<–&gt;门户

在这里插入图片描述

问题3:如何使用传输层提供的服务,实现应用进程之间的报文交换,实现应用(用户使用服务)

应用层协议

公开协议:

专用(私有)协议:

  • 协议不公开
  • 如:Skype

应用需要传输层提供什么样的服务?如何描述传输层的服务?

在这里插入图片描述

Internet传输层提供的服务:

UDP存在的必要性:

在这里插入图片描述

安全TCP:

二、Web与HTTP

介绍一些术语

1.HTTP概况

在这里插入图片描述

  • 使用TCP:

    • 客户发起一个与服务器的TCP连接(建立套接字),端口号为80
    • 服务器接受客户的TCP连接
    • 浏览器(HTTP客户端)与Web服务器(HTTP服务器server)交换HTTP报文(应用层协议报文)
    • TCP连接关闭
  • HTTP是无状态

    • 服务器并不维护关于客户的任何信息
  • 维护状态的协议很复杂!

    • 必须维护历史信息(状态)
    • 如果服务器/客户端死机,它们的状态信息可能不一致,二者的信息必须是一致
    • 状态的服务器能够支持多的客户端

2.HTTP连接

(1)非持久HTTP连接
在这里插入图片描述

响应时间模型
往返时间RTT (round-triptime):一个小的分组从客户端到服务器,在回到客户端的时间(传输时间忽略
响应时间:

在这里插入图片描述

(2)持久HTTP
在这里插入图片描述

3.HTTP请求报文

在这里插入图片描述

通信格式
在这里插入图片描述

提交表单输入
在这里插入图片描述

方法类型

  • HTTP/1.0

    • GET
    • POST
    • HEAD
  • HTTP/1.1

    • GET、POST、HEAD
    • PUT
    • DELETE
      • 删除URL字段规定的文件

HTTP响应报文:
在这里插入图片描述

HTTP响应状态码:
位于服务器–&gt;客户端的响应报文中的首行一些状态码的例子

应用进程要自己区分报文的边界,TCP向上层提供的服务是不区分边界的,你发两段15K内容,但是实际上TCP收到的是一个30K内容

4.用户-服务器状态:cookies

大多数主要门户使用cookiescookie也弥补了HTTP无状态的问题。
四个组成部分

在这里插入图片描述

Cookies:维护状态
在这里插入图片描述

在第一次向服务器请求时是没有Cookie值的,第一次请求后,服务器会生成一个cookie响应给客户端。
Cookies能带来什么:

如何维持状态:

Cookies隐私

5.Web缓存代理服务器

目标:不访问原始服务器,就满足客户的请求

在这里插入图片描述

为什么要使用Web缓存?

缓存示例
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

服务器中数据修改,缓存器与服务器数据不一致?
在这里插入图片描述

在对比缓存生效时,状态码为304,并且报文大小和请求时间大大减少。
原因是,服务端在进行标识比较后,只返回header部分通过状态码通知客户端使用缓存,不再需要将响应报文体部分返回给客户端。
对于对比缓存来说,缓存标识传递我们着重需要理解的,它在请求header和响应header间进行传递,一共分为两种标识传递

Last-Modified:(注意这里是响应报文)

If-Modified-Since:(注意这里是请求报文)

在这里插入图片描述

Expires

  • Expires值为服务端返回的到期时间,即下一次请求时,请求时间小于服务端返回的到期时间,直接使用缓存数据。
    不过现在一般不是用这个参数

  • Expires 是HTTP 1.0的东西,现在默认浏览器均默认使用HTTP 1.1,所以它的作用基本忽略

  • 到期时间是由服务端生成的,但是客户端时间可能跟服务端时间有误差,这就会导致缓存命中的误差。

所以HTTP 1.1 的版本,使用Cache-Control替代。

Cache-Control

图中Cache-Control指定maxage,所以默认为private,缓存时间为31536000秒(365天)也就是说,在365天内再次请求这条数据,都会直接获取缓存数据库中的数据,直接使用。

注意:
如果Expires和Cache-Control同时存在,Cache-Control会覆盖Expires。建议两个都写,Cache-Control是http1.1的头字段,Expires是http1.0的头字段,都写兼容会好点。

三、FTP:文件传输协议

在这里插入图片描述

  • 向远程主机上传输文件或从远程主机接收文件
  • 客户/服务器模式
    • 客户端:发起传输的一方
    • 服务器:远程主机
  • ftp: RFC 959
  • ftp服务器:端口号为21

1.FTP:控制连接与数据连接分开

在这里插入图片描述

控制命令和刷数据传输分别在两个TCP进行。

2.FTP命令、响应

命令样例

返回码样例


总结

以上就是应用层的一些讲解,分为两篇,上篇下篇,下篇后续会发。

原文地址:https://blog.csdn.net/weixin_62951900/article/details/134703692

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_32552.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注