HTTP报文讲解和tcp三次握手和四次挥手

来源:互联网 发布:金属探测器软件 编辑:程序博客网 时间:2024/05/17 22:23

http报文首部

http请求报文
http报文由方法、URI、HTTP版本、HTTP首部字段等部分构成。
请求行 方法|URI|HTTP版本
请求首部字段
通用首部字段
实体首部字段
其他

http请求报文

Request URL:http://passport2.chaoxing.com/favicon.ico 请求网址
Request Method:GET 请求方法
Status Code:200 OK 请求状态
Remote Address:42.62.2.159:80 地址

http响应报文

http响应报文由HTTP版本、状态码(数字和原因短语)、HTTP首部字段构成
Cache-Control:max-age=86400 缓存控制
Connection:keep-alive 连接状态
Content-Encoding:gzip 内容编码方式
Content-Type:application/javascript; charset=utf-8 应用范围 编码格式
Date:Fri, 18 Aug 2017 14:17:52 GMT 日期
Keep-Alive:timeout=20
Last-Modified:Fri, 18 Aug 2017 10:10:33 GMT 最后一次访问时间
Etag:”75b-517fc707d2380” 资源的匹配信息

HTTP首部字段结构

首部字段名:字段值

HTTP首部字段分为4中类型:
1.通用首部字段(General Header Fields)
请求报文和响应报文都会使用的首部。
2.请求首部字段(Request Header Fields)
客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。
3.响应首部字段(Response Header Fields)
补充了响应附加内容,也会要求客户端附加额外内容信息。
4.实体首部字段(Entity Header Fields)
补充了资源内容更新时间等与实体有关的信息。

通用首部字段

Cache-Control 控制缓存的行为
Connection 逐跳首部、连接管理
Date 创建报文的日期时间

请求首部字段

Accept 用户代理可处理的媒体类型
Accept-Charset 优先的字符集
Accept-Encoding 优先的内容编码
Accept-Language 优先的语言
User-Agent HTTP客户端程序的信息
Range 实体的字节范围请求
Host 请求资源所在服务器

响应首部字段

Accept-Ranges 是否接受字节范围请求
ETag 资源的匹配信息
Location 令客户端重定向至指定URI

实体首部字段

Content-Encoding 实体主体适用的编码方式
Content-Language 实体主体的自然语言
Content-Length 实体主体的大小
Content-Location 替代对应资源的URI
Content-Range 实体主体的位置范围
Content-Type 实体主体的类型
Last-Modified 资源的最后修改日期时间

缓存控制

Cache-Control 告诉客户端是否缓存
:no-cache 不缓存 客户端不会接受缓存过的响应。
:max-age 代表资源保存为缓存的最大时间。
:min-fresh 要求魂村服务器返回至少还未过指定时间的缓存资源。

tcp的三次握手和四次挥手

三次握手
1.发送端向接收端发起请求带有syn(synchronized)数据包 标识发送端想要建立连接
2.接收端接收后,允许该请求,响应给发送端syn/ack(acknowledge)数据包 表示是该接收端发送给该发送端的数据包
3.发送端接收数据后,发送ack数据包,并建立连接。 表示连接成功

四次挥手
1.发送端向接收端发送带有fin(finished)数据包 发送表示自己想关闭本次连接
2.接收端接收后,表示自己正在处理数据,继续向发送端发送带有ack标识的数据包
3.当接收端处理完数据后,向发送端发送带有fin表示的数据包。 接收端表示自己可以关闭本次连接
4.当发送端接收到数据后,发送带有ack标识的数据包。 接收端知道自己可以关闭本次连接了

原创粉丝点击