HTTP消息

MIME类型

多用途internet邮件扩展类型,是一种标准化的方式来表示文档的性质和格式

  • 浏览器通常使用MIME类型(不是文件扩展名)来确定如何处理文档,因此服务器设置正确以将正确的MIME类型附加到响应对象的头部是非常重要的
  • text:表示文件时普通文本
  • image:表示某种图像
  • audio:表明是某种音频文件
  • video:表明是某种视频文件
  • application:表明某种二进制数据

HTTP/2.0

HTTP/1.0报文上的一些缺点

  • 消息头不像消息主体一样被压缩(长度)
  • 重复传输问题
  • 无法复用

HTTP/2.0引入一个额外的步骤,将HTTP/1.0消息分成帧并嵌入到流(stream)中

请求头

允许客户端向服务器端传递附加信息,请求头由名称(不区分大小写)后跟一个冒号“:”,冒号后跟具体的值(不带换行符)组成

  • 通用头:同时适用请求和响应消息
  • 请求头:只能用在请求消息
  • 实体头:包含有关实体主体的更多信息
    HTTP消息

请求主体

请求消息的最后一部分是请求主体

  • 不是所有的请求都需要请求主体,例如GET、HEAD、DELETE不需要请求主体

  • 有些请求将数据发送到服务器以便更新数据
    请求主体分类:

  • 单一资源主体

  • 多资源主体

起始行

  • 请求方法:描述要执行的动作
  • 请求地址:通常是一个URL,或者是协议、端口和域名的绝对路径
  • HTTP版本:定义了剩余报文的结构,作为对期望的响应版本的指示符

请求方法

面试题:

  • 最常用的请求方法是GET和POST
  • 常见的请求方法至少有7种
  • 请求方法不止7中
  • 不常用:TRACE、PATCH
    HTTP消息

响应头(同请求头)

允许服务器端向客户端传递附加信息
HTTP消息

响应主体(同请求主体)

HTTP报文

是服务器和客户端之间交换数据的方式

两种类型的消息:

  • 请求消息:由客户端发送用来触发一个服务器上的动作
  • 响应消息:来自服务器的应答

HTTP请求报文

请求方法(Method)、要获取的资源路径、HTTP协议版本号、表达其它信息的可选头部headers(请求头部)
HTTP消息

HTTP响应报文

HTTP协议版本号、一个状态码、一个状态信息、HTTPheaders(响应头部)以及包含获取的资源body

HTTP消息

HTTP消息

结构

  1. start line:开始行
  2. HTTP headers:头
  3. empty line:空行
  4. body:正文
    起始行和HTTP消息中的HTTP头统称为“请求头”。而其有效负载被称为“消息正文”

请求消息与响应消息

HTTP消息

状态行

HTTP响应消息的起始行被称为状态行

  • 协议版本
  • 状态码:表明请求是成功还是失败
  • 状态文本

状态码

信息响应

HTTP消息

成功响应

HTTP消息

重定向

HTTP消息

客户端响应

HTTP消息

服务器端响应

HTTP消息