HTTP 协议请求头、响应头、状态码
2019-07-02 本文已影响0人
咩咩的毛球
1. web 架构的三重点:
- 用超文本技术(HTML)实现信息与信息的连接
- 用统一资源标志符(URI)实现全球信息的精确定位
- 用应用层协议(HTTP)实现分布式信息共享
2. HTTPS:Hypertext Transfer Protocol over Secure Socket Layer
- 1. TCP/IP 架构中的HTTP应用层
3. HTTP1.0,HTTP1.1
- HTTP 是无状态协议,每次的请求和响应是独立的
- HTTP1.0 使用的是非持久连接,连接不能重复利用 2. 非持久连接的请求和响应过程
-
HTTP1.1 采用持续连接机制,建立的 TCP 连接后续的 HTTP 请求可以重复使用。同一个服务器的多个 web 页面可以通过同一个持续 tcp 连接进行请求和响应。此时,有一个最大空闲时间,分为两类:带流水线和不带流水线。
不带流水线:HTTP 请求只能在上一个请求得到响应后发出;
带流水线(默认):无需考虑上一个请求的响应。 - HTTP 1.1,客户端和服务器默认支持持续的带流水线的 TCP 连接,客户端可将请求消息中 Connection 头值置close,服务器端也是。请求或响应只要有一个 close,TCP 连接将在本次 HTTP 请求和响应结束后关闭,下一次 HTTP 请求重新发起 TCP连接。
4. HTTP 请求消息
- HTTP 协议是一个标准的“请求+响应”协议。规定请求消息包含:请求方法、统一资源标识符、HTTP 协议版本等,响应消息包含:HTTP 协议版本、成功或错误代码等。
- 一个 HTTP 请求消息实例 请求格式:
HTTP 请求行 # 格式:请求方法(空格)URI(空格)版本号
通用头 1:(空格)通用头 1 的值
······
通用头 n:(空格)通用头 n 的值
请求头 1:(空格)请求头 1 的值
······
请求头 n:(空格)请求头 n 的值
实体头 1:(空格)实体头 1 的值
······
实体头 n:(空格)实体头 n 的值
(空行)
实体内容
-
常用的请求方式:
HEAD、POST、PUT、DELETE、TRACE、CONNECT
-
通用头:Connection [Keep-Alive 或 close]、Data、Transfer-Encoding
-
请求头:本请求的附加信息,Accept、Accept-Language、Accept-Encoding、User-Agent、Host 等。
5. HTTP 响应消息
- 一个 HTTP 响应消息实例 响应格式:
HTTP 状态行 # 格式:协议版本号(空格)状态码(空格)状态短语)
通用头 1:(空格)通用头 1 的值
······
通用头 n:(空格)通用头 n 的值
响应头 1:(空格)响应头 1 的值
······
响应头 n:(空格)响应头 n 的值
实体头 1:(空格)实体头 1 的值
······
实体头 n:(空格)实体头 n 的值
(空行)
实体内容
6. 状态码
- 状态码
- 常用状态码