HTTP的报文

HTTP的报文

又称为HTTP消息 两种消息 请求(客户端向服务器发送的消息)跟响应(服务器返回给客户端的消息)

HTTP消息是ASCII编码的多行文本构成

HTTP消息请求消息

由一个HTTP的method,要获取的资源的路径(请求的地址),HTTP消息协议版本号,为服务器端表达其他信息的可选头部headers以及对一些像post这样的方法组成

在这里插入图片描述

HTTP消息响应消息

由HTTP协议版本号,一个状态码,一个状态信息,HTTPheaders以及含获取的信息body组成

在这里插入图片描述

HTTP消息结构

start line:起始行 描述执行的请求 或者是对应的状态 成功或失败 是单行的

HTTP headers:可选HTTP头集合指明请求或者描述消息正文

start line + HTTP headers 是请求头

empty line:表示所有关于请求的元数据已经发送完毕

body:包含请求相关数据的正文 或者响应相关的文档

empty line + body 是消息正文

在这里插入图片描述

起始行

包含三个元素:
请求方法:描述执行的动作 比如get获取资源

​ 请求地址:URL 或者协议 端口 和域名的绝对路径

​ HTTP版本号

GET/home.html HTTP/1.1
请求方法

最常用的请求方法 GET POST

常见的请求方法至少有七种 GET HEAD POST PUT DELETE CONNECT OPTIONS

请求方法不止七种

GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE PATCH

在这里插入图片描述

请求头

请求头允许客户端向服务器传输附加信息

格式:
在这里插入图片描述

根据不同的情况 分为:
通用头:适用于请求头跟响应头

​ 请求头:只用在请求中 实体头:具体的内容

Accept:text/html,… 服务器端接收的数据类型有哪些

Accept-Encoding:gzip,… 接收编码格式

Accept-Language:zh-CN,… 接收的语言

Connection:kepp-alive… 连接方式

Cookie:… 缓存

Host: … 当前客户端所在的地址信息

Referer:… 发送当前的地址

User-Agent: … 发送当前客户端信息

请求头主体

请求消息的最后一部分是请求主体 这是可选内容(要获得的资源等) 常见的有POST请求会用

状态码 了解 不需要背 能百度 要知道大概

信息响应 100

在这里插入图片描述

成功响应 200

在这里插入图片描述

重定向 300
在这里插入图片描述

客户端响应 400

在这里插入图片描述

服务器响应 500

在这里插入图片描述

响应头

响应头允许服务器向客户端传递附加内容

也分为 通用头 响应头 实体头

cache-control:… 控制缓存

content-length:… 响应主体的大小

content-type: … 响应主体的MIME类型

date:… 当前日期

last-modified:… 最后修改日期

server:… 服务器信息

自定义响应头:…

响应主体

类似请求主体

分为:单一资源主体(这个还能细分为 未知和已知长度的单个文件组成) 多资源主体

MIME类型

MIME类型 多用途Internet邮箱扩展类型 是一张标准化的方式来表示文档的性质和格式。

正确的MIME类型附加到响应对象的头部是非常重要的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bS1YA5PQ-1597801907182)(1.png)]

HTTP/2.0

HTTP/1.x报文有些性能上的缺陷:

​ 消息头不像消息主体一样会被压缩 无法优化

​ 两个报文之间的header通常非常相似(就是请求头跟响应头),但是他们仍然在连接中重复传输(就是请求头跟响应头可能存在同样的内容 但是无法简化成一个不重复的)

​ 无法复用(因为HTTP的无状态 所有无法复用)

HTTP/2.0引入了一个额外的步骤,它将HTTP/1.x消息分成帧并嵌入到流中

猜你喜欢

转载自blog.csdn.net/weixin_44492275/article/details/108093701
今日推荐