HTTP协议简介
简介
- HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写
- HTTP协议是在 TCP/IP协议族的基础上运作并传输数据,HTTP 属于它内部的一个子集
- HTTP 处于应用层, 默认使用80端口
1 HTTP的特点
简单快速无状态
-
在一条通信线路上一端是客户端,另一端则是服务器端。
-
请求从客户端发出,最后服务器端响应该请求并返回。
-
每当有新的请求发送时,就会有对应的新响应产生。
-
新的请求响应,与旧的请求响应没任何关系
-
协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把 HTTP 协议设计成如此简单的。
2 Http报文
- Http报文包括请求报文和响应报文两大部分
- 其中请求报文由请求行(request line)、请求头(header)、空行和请求体四个部分组成。
- 响应报文由状态行、响应头部、空行和响应体四个部分组成
请求行
用来说明请求类型、要访问的资源以及所使用的HTTP版本。
请求头
它包含许多有关的环境和请求正文的有用信息。其中比如
Host:表示主机名,虚拟主机。
Connection:HTTP/1.1增加的,使用keepalive,即持久连接,一个连接可以发多个请求。
User-Agent:请求发出者,兼容性以及定制化需求。
Content-Type: text/html 示报文主体的对象类型
空行
表示请求头已经结束,接下来的是请求正文。
请求体
承载请求内容的地方
3 HTTP请求方法
- GET:获取资源
- POST: 传输实体主体
- PUT 更新内容
- HEAD:获取头部信息
- DELETE:删除文件
- OPTIONS:询问支持的方法
- TRACE:追踪路径 不常用
- CONNECT:要求用隧道协议连接代理
4 HTTP请求相应状态码
-
1xx:接收的请求正在处理。
-
2xx:请求正常处理完毕。
- 200 ok
- 204 NO Content 请求处理成功,但没资源返回
- 206 Partial Content 该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET 请求。响应报文中包含由 Content-Range 指定范围的实体内容
-
3xx:重定向。
- 301 Moved Permanently 永久性重定向。表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。
- 302 Found 临时性重定向。表示请求的资源已被分配了新的 URI,本次能使用新的 URI 访问。
- 303 See Other 同302功能相同,特指应使用 GET
方法定向获取请求的资源 - 304 Not Modified 找到资源,但不符合条件:含 If-Match,If-Modified Since,If-None-Match,If-Range,If-Unmodified-Since
-
4xx:客户端错误——请求有语法错误或请求无法实现。
- 400 Bad Request 请求报文中存在语法错误。
- 401 Unauthorized 认证失败
- 403 Forbidden 请求资源的访问被服务器拒绝了
- 404 Not Found
-
5xx:服务器端错误——服务器未能实现合法的请求。
- 500 Internal Server Error 服务器端在执行请求时发生了错误
- 503 Service Unavailable 表明服务器暂时处于超负载或正在进行停机维护
5 持久连接节省通信量
HTTP 协议的初始版本中,每进行一次 HTTP 通信就要断开一次 TCP连接。
以当年的通信情况来说,因为都是些容量很小的文本传输,所以即使这样也没有多大问题。可随着 HTTP 的普及,文档中包含大量图片的情况多了起来。比如,使用浏览器浏览一个包含多张图片的 HTML页面时,在发送请求访问 HTML页面资源的同时,也会请求该 HTML页面里包含的其他资源。因此,每次的请求都会造成无谓的 TCP 连接建立和断开,增加通信量的开销。
为解决上述 TCP 连接的问题,HTTP/1.1 和一部分的 HTTP/1.0 想出了持久连接(HTTP Persistent Connections,也称为 HTTP keep-alive 或 HTTP connection reuse)的方法。持久连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。
持久连接的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。另外,减少开销的那部分时间,使HTTP 请求和响应能够更早地结束,这样 Web 页面的显示速度也就相应提高了。
《图解HTTP》

浙公网安备 33010602011771号