这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天,今天学习了 HTTP 协议的基本定义和特点,在此基础上,对于 HTTP 协议的发展历程及报文结构展开进一步分析1。
什么是 HTTP
HTTP 全称 HyperText Transfer Protocol,意为超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议,是因特网上应用最为广泛的一种网络传输协议,所有的 WWW 文件都必须遵守这个标准。
HTTP 是计算机网络中的应用层协议,基于 TCP 协议。
HTTP 是基于客户端/服务端的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。
HTTP 是无连接的,无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。
HTTP 是无状态的,无状态是指协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大,另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP 报文
HTTP 报文有两种,分别是请求报文和响应报文。
请求报文
客户端发送一个 HTTP 请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。2
请求方法常见的有以下几种:
| 请求方法 | 描述 |
|---|---|
| GET | 请求指定的页面信息,并返回实体主体。 |
| HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
| POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
| PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
| DELETE | 请求服务器删除指定的页面。 |
| CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
| OPTIONS | 允许客户端查看服务器的性能。 |
| TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
| PATCH | 是对 PUT 方法的补充,用来对已知资源进行局部更新 。 |
请求头常见的有以下几种:
响应报文
HTTP 响应也由四个部分组成,分别是:状态行、消息报头(响应头)、空行和响应正文。3
下面是常见的 HTTP 状态码:
- 200 - OK 请求成功
- 301 - 资源(网页等)被永久转移到其它URL
- 302 - 临时跳转
- 401 - 请求未授权
- 404 - 请求的资源(网页等)不存在
- 500 - 内部服务器错误
- 504 - 网关或代理的服务器,未及时获得想要的响应
响应头常见的有以下几种: