一 . 什么是HTTP协议
- Hyper Text Transfer Protocol 超文本传输协议
- 应用层协议,基于 TCP 协议
- 请求头响应
- 简单可扩展
- 无状态
请求报文(Method)
-
GET:请求一个指定资源的表示形式,使用GET的请求应该只被用于获取数据。
-
POST:用于将实体提交到指定的资源通常导致在服务器上的状态变化或副作用。
-
PUT:用请求有效载荷替换目标资源的所有当前表示。
-
DELETE:删除指定的资源
-
HEAD:请求一个与GET请求的响应相同的响应,但没有响应体。
-
CONNECT:建立一个到由目标资源标识的服务器的通道。
-
OPTIONS:用于描述目标资源的通信选项。
-
TARCE:沿着到目标资源的路径执行一个消息环回测试。
-
PATCH:用于对资源应用部分修改。
safe(安全的):不会修改服务器的数据的方法 [GET HEAD OPTIONS]
idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有 safe 的方法都是 idempotent 的 [GET HEAD OPTIONS PUT DELETE]
常用请求头
-
User-Agent:用于标识发送请求的客户端,可以告诉服务器客户端的类型和版本号。
-
Accept:用于告诉服务器客户端可以接受的数据类型,通常是 MIME 类型。
-
Content-Type:用于告诉服务器请求体中发送的数据的类型,常见的有
application/json、application/x-www-form-urlencoded等。 -
Authorization:用于携带身份认证信息,比如基本认证(Basic Authentication)的 Token。
-
Cookie:在浏览器中保存的会话信息,通过该头部发送给服务器。
-
Referer:用于告诉服务器请求的来源页面,一般在跳转链接时会带上该头部。
-
Accept-Language:用于告诉服务器客户端可以接受的语言类型。
-
Host:指定服务器的主机名和端口号。
-
Content-Length:请求体的长度,以字节为单位。
-
If-None-Match:用于缓存控制,当服务器上数据未发生变化时,客户端可以使用该头部进行缓存验证。
常用响应头
-
Content-Type:指定响应的内容类型,例如"text/html"表示HTML文档,"application/json"表示JSON数据。
-
Content-Length:指定响应体的长度,用于浏览器正确解析响应。
-
Cache-Control:控制缓存的行为,例如"no-cache"表示不缓存,"max-age=3600"表示缓存有效期为3600秒。
-
Location:用于重定向,指定新的 URL 地址。
-
Set-Cookie:用于设置 Cookie,将数据存储在客户端浏览器。
-
Expires:设置响应过期的时间,用于缓存控制。
-
Last-Modified:指定资源的最后修改时间,用于缓存验证。
-
ETag:指定资源的唯一标识,用于缓存验证。