HTTP消息
MIME类型
多用途internet邮件扩展类型,是一种标准化的方式来表示文档的性质和格式
- 浏览器通常使用MIME类型(不是文件扩展名)来确定如何处理文档,因此服务器设置正确以将正确的MIME类型附加到响应对象的头部是非常重要的
- text:表示文件时普通文本
- image:表示某种图像
- audio:表明是某种音频文件
- video:表明是某种视频文件
- application:表明某种二进制数据
HTTP/2.0
HTTP/1.0报文上的一些缺点
- 消息头不像消息主体一样被压缩(长度)
- 重复传输问题
- 无法复用
HTTP/2.0引入一个额外的步骤,将HTTP/1.0消息分成帧并嵌入到流(stream)中
请求头
允许客户端向服务器端传递附加信息,请求头由名称(不区分大小写)后跟一个冒号“:”,冒号后跟具体的值(不带换行符)组成
- 通用头:同时适用请求和响应消息
- 请求头:只能用在请求消息
- 实体头:包含有关实体主体的更多信息
请求主体
请求消息的最后一部分是请求主体
-
不是所有的请求都需要请求主体,例如GET、HEAD、DELETE不需要请求主体
-
有些请求将数据发送到服务器以便更新数据
请求主体分类: -
单一资源主体
-
多资源主体
起始行
- 请求方法:描述要执行的动作
- 请求地址:通常是一个URL,或者是协议、端口和域名的绝对路径
- HTTP版本:定义了剩余报文的结构,作为对期望的响应版本的指示符
请求方法
面试题:
- 最常用的请求方法是GET和POST
- 常见的请求方法至少有7种
- 请求方法不止7中
- 不常用:TRACE、PATCH
响应头(同请求头)
允许服务器端向客户端传递附加信息
响应主体(同请求主体)
HTTP报文
是服务器和客户端之间交换数据的方式
两种类型的消息:
- 请求消息:由客户端发送用来触发一个服务器上的动作
- 响应消息:来自服务器的应答
HTTP请求报文
请求方法(Method)、要获取的资源路径、HTTP协议版本号、表达其它信息的可选头部headers(请求头部)
HTTP响应报文
HTTP协议版本号、一个状态码、一个状态信息、HTTPheaders(响应头部)以及包含获取的资源body
HTTP消息
结构
- start line:开始行
- HTTP headers:头
- empty line:空行
- body:正文
起始行和HTTP消息中的HTTP头统称为“请求头”。而其有效负载被称为“消息正文”
请求消息与响应消息
状态行
HTTP响应消息的起始行被称为状态行
- 协议版本
- 状态码:表明请求是成功还是失败
- 状态文本