提前解除协议的赔偿请求(关于请求签订合作协议的请示)

图片授权基于 www.pixabay.com 相关协议

HTTP 协议是基于 TCP 的,TCP 在传输数据时会将数据包装一下,在实际数据之前会加上 20 个字节的头部数据,存储额外的信息:发送方端口、接收方端口、标志位等,这样来标记数据。

提前解除协议的赔偿请求(关于请求签订合作协议的请示)

HTTP 协议的数据传输与 TCP 类似,也是需要在真实数据之前添加上一些信息,不过,HTTP 协议添加的信息是 ASCII 码的文本,肉眼可见。

浏览器是 HTTP 协议里的请求方,即:User Agent;
服务器是 HTTP 协议里的响应方,有:Apache、Nginx 等

请求方发送的报文叫:请求头,响应方回复的报文叫:响应头。

请求报文和响应报文的基本结构由三部分构成:

1、起始行(start line):描述请求和响应信息;
2、头部字段(header):由 key:value 组成;
3、消息正文(body):实际传输的数据,可以是图片、视频二进制等数据。

在头部字段和消息正文之间存在一个空行(CRLF),以区分 body 体,如图:

提前解除协议的赔偿请求(关于请求签订合作协议的请示)

看一下实际抓包结果:

提前解除协议的赔偿请求(关于请求签订合作协议的请示)

请求头
(我想操作服务器资源)

请求头的「起始行」由三部分构成:

1、请求方法,通常是 GET / POST ,表示动作;
2、请求目标:URI「网络资源地址」;
3、HTTP 版本号:HTTP1.1/HTTPS/HTTP2

提前解除协议的赔偿请求(关于请求签订合作协议的请示)

GET / HTTP/1.1

在 Chrome 浏览器中 Request Headers 就是请求头,Response Headers 就是响应头。

响应头
(服务器对资源的返回)

响应头「起始行」也分三部分构成:

1、版本号:HTTP 使用的协议版本
2、状态码:一个三位数,200 表示成功,404 表示页面无法找到,500 表示服务器错误。
3、原因:状态码的文字补充说明

HTTP/1.1 200 OK

请求头和响应头的「起始行」介绍完后,剩下的就是「头部字段」了。

有些字段在请求头和响应头中都可以出现,有些只存在请求头,有些只存在响应头。

Accept:请求头字段,客户端能够接收的数据类型;

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Host:请求头字段,表示浏览器想请求的主机,如果一台服务器上有多个主机,那就需要服务器用 Host 去匹配;

Host: www.weibo.com

Accept-encoding:请求头字段,客户端能够接收的服务器压缩的方式;

Accept-encoding: gzip, deflate, br

User-Agent:请求头字段,客户端标识当前的客户端版本号;

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36

Date:响应头字段,标识报文创建的时间;

Date: Thu, 05 Mar 2020 00:35:27 GMT

Content-length:响应头字段,返回的内容长度;

Content-length: 62590

Content-type:响应头字段,返回的内容格式;

Content-type: text/html; charset=UTF-8

Set-cookie:响应头字段,设置客户端的标识;

Set-cookie: NID=199=G9qwSJKCilfBYphYAPaflBKJzEIS1G9nwzWraiHF7aiL106uP6znIbjw6THT9Q68qACEyg1OzhoYOI7GMyEVDpZNQ4bOtlHY5jsSHtkeZ5uorUTiYYrA5ybMzv172ZH-0rmkY8d7jrw_iGp5swz9kJtFbrHR24EMmLgj43j4P8RdCpBwvc5pFVvTA_J4Llj3iPZoqBCZshpP_uTqfE4On8n-OPbcO_QBxjbUVS6yDLTkwlqXMnuJOC8tVQQxnbyE3z2K_aTnMe6L_Vvr4gJjI47a; expires=Fri, 04-Sep-2020 00:35:27 GMT; path=/; domain=.google.com.hk; Secure; HttpOnly; SameSite=none

上面罗列了一些 key:value 键值对,下面以对话的形式简单来罗列请求方和响应方的沟通:

客户端说:

1、我能识别的文本格式「Accept:text/html,application/xhtml+xml…」
2、我能识别的压缩方式「Accept-Encoding:gzip, deflate, br」
3、这是我的客户端标识「User-Agent:Mozilla/5.0…」
行了,你按我的要求,返回我可以识别的数据吧。

服务器说:

1、给你返回这个文本格式「Content-type:text/html; charset=UTF-8」
2、给你返回这个压缩方式「Content-Encoding:gzip」
3、既然你访问过了,那就送你个 cookie 吧「Set-cookie:NID=199=G9qwSJKCilfB」,请保存好,我后面会利用 Cookie 给你推送广告的…
HTTP 协议的流行很大一部分原因和它「可扩展性」是分不开的,客户端和服务器端可以扩展「请求头」和「响应头」,那在技术上就带来了很大的想象空间。

HTTP 协议在「负载均衡」中,它既是请求方又是响应方,靠协议来去请求服务器和响应客户端。


内容和图片来源于:极客时间《透视 HTTP 协议》

原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34524.html

(0)
小道研究's avatar小道研究
上一篇 2024年4月18日 下午7:06
下一篇 2024年4月18日 下午7:08

相关推荐

发表回复

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