所在位置:

HTTP 基础(下)

在上一章中我们已经对 HTTP 有了一个大概的了解,HTTP 首部由 HTTP 请求报文 和 HTTP 响应报文构成,这一章来讲一下 HTTP 的首部和首部各字段的用法:

HTTP 请求报文

HTTP 请求报文的结构图:

HTTP 请求报文的主要包括下面几个部分:
  • 请求行
  • 请求首部字段
  • 通用首部字段
  • 实体首部字段
网站请求报文的示例图

说明: 上面图片的第一行就是请求行(包括请求方法、URI、HTTP 版本),其它的是请求、通用、实体的首部字段

HTTP 响应报文

HTTP 响应报文的结构图:

HTTP 响应报文的主要包括下面几个部分:
  • 状态行
  • 响应首部字段
  • 通用首部字段
  • 实体首部字段
网站响应报文的示例图

说明: 上面图片的第一行就是状态行(包括状态码、HTTP 版本),其它的是请求、通用、实体的首部字段

我们知道首部字段可以由请求报文和响应报文组成,但是请示报文和响应报文有不少共同的字段,所以我们又可以把 首部字段 归纳为 通用首部字段请求首部字段响应首部字段实体首部字段,下面来说一下这几个首部字段的常用内容:

通用首部字段

请求报文和响应报文两方都会使用的首部

下面是一些常用的通用首部字段:

Cache-Control 控制缓存的行为
Connection 逐跳首部、连接的管理
Date 创建报文的时间和日期
Pragma 报文指令
Transfer-Encoding 指定报文主体的传输编码方式
Via 代理服务器的相关信息

请求首部字段

从客户端向服务器端发送请求报文时使用的首部

下面是一些常用的请求首部字段:

Accept 用户代理可处理的媒体类型
Accept-Charset 优先的字符集
Accept-Encoding 优先的内容编码
Accept-Language 优先的语言(自然语言)
Host 请求资源所在服务器
If-Match 比较实体标记(ETag)
If-Modified-Since 比较资源的更新时间
Referer 对请求中 URI 的原始获取方
TE 传输编码的优先级
User-Agent HTTP 客户端程序的信息

响应首部字段

从服务器端向客户端返回响应报文时使用的首部

下面是一些常用的响应首部字段:

Accept-Ranges 是否接受字节范围请求
Age 推算资源创建经过时间
ETag 资源的匹配信息
Location 令客户端重定向至指定URI
Proxy-Authenticate 代理服务器对客户端的认证信息
Retry-After 对再次发起请求的时机要求
Server HTTP服务器的安装信息
Vary 代理服务器缓存的管理信息
WWW-Authenticate 服务器对客户端的认证信息

实体首部字段

针对请求报文和响应报文的实体部分使用的首部

下面是一些常用的实体首部字段:

Content-Type 实体主体的媒体类型
Expires 实体主体过期的日期时间
Last-Modified 资源的最后修改日期时间
Allow 资源可支持的HTTP方法
Content-Encoding 实体主体适用的编码方式
Content-Language 实体主体的自然语言
Content-Length 实体主体的大小(单位:字节)

【上一篇】HTTP 基础(上)

【下一篇】用 ansible的playbook模式来部署Flask

相关文章