目录
常见的请求方式
GET/POST
HEAD(报文首部,验证URI有效性)
PUT/DELETE(报文文件)
OPTIONS(查询URI支持的HTTP方法)
Connection: keep-alive TCP 就会一直保持连接。
Cache-Control
public:响应可以被任何缓存(客户端/代理服务器)缓存
private:响应只能被客户端缓存
no-cache:不应直接使用缓存的副本,而是需要先进行验证
no-store:响应和请求都不应被缓存,即不在本地存储中保存副本。
max-age=:秒
Last-Modified/If-Modified-Since
ETag/If-None-Match:服务器生成的资源标识符(哈希值/实体标签)
主体:服务端响应/客户端请求
Content-Length:字节Byte为单位
Content-Type/Accept:type/subtype ;parameter
应用程序类型(application):
application/x-www-form-urlencoded (默认)(URL encoded)表单数据被转换成键值对
application/json:JSON 数据(axios传递对象时默认)application/xml:XML 数据
多媒体类型(multipart):
multipart/form-data:用于在 HTML 表单上传文件时的数据类型。
文本类型(text):
Content-Encoding/Accept-Encoding
请求头
User-Agent:发起请求的用户代理(浏览器/应用程序)
Host:访问的主机名+端口
Origin:跨域请求时,指示请求的来源
Connection: keep-alive
Accept-Language:客户端 偏好的语言。
凭证Credentials
Authorization:在需要身份验证的情况下,包含用于认证的凭据
withCredentials:是否发送凭据
Cookie: sessionid=abc123; username=johndoe
响应头
Set-Cookie:session_id=abcd123; Path=/; HttpOnly
Access-Control-Allow-Origin
Access-Control-Allow-Credentials:是否允许在跨域请求中包含凭据Credentials
Server:HTTP服务器的信息
Location:客户端重定向的URL。
Content-Range: bytes -/ 分段下载
Content-Disposition:如何显示响应体,通常用于下载文件
缓存:Cache-Control+max-age(HTTP/1.1)>Expires(HTTP/1.0)
常见的请求方式
GET/POST
"幂等":表示对同一资源的多次请求会产生与一次请求相同的结果。GET请求通常用于获取资源,而不会对资源做出改变,因此它们被认为是幂等的。
HEAD(报文首部,验证URI有效性)
PUT/DELETE(报文文件)
OPTIONS(查询URI支持的HTTP方法)
HTTP标头
Connection: keep-alive TCP 就会一直保持连接。
在隔开一段时间之后发送几次没有数据内容的网络请求来判断当前连接是不是应该继续保留。
可能会造成大量的无用途连接,白白占用系统资源
Cache-Control
public:响应可以被任何缓存(客户端/代理服务器)缓存
private:响应只能被客户端缓存
no-cache:不应直接使用缓存的副本,而是需要先进行验证
no-store:响应和请求都不应被缓存,即不在本地存储中保存副本。
max-age=<seconds>:秒
Last-Modified/If-Modified-Since
如果将资源的最后修改日期Last-Modified<=If-Modified-Since,会 304(Not Modified)
ETag/If-None-Match:服务器生成的资源标识符(哈希值/实体标签)
使用了该头部,即为条件请求,若请求标识符==资源的当前标识符,则304
If-None-Match: "d41d8cd98f00b204e9800998ecf8427e"
主体:服务端响应/客户端请求
Content-Length:字节Byte为单位
Content-Length: 123
Content-Type/Accept:type/subtype ;parameter
应用程序类型(application):
application/x-www-form-urlencoded (默认)(URL encoded)表单数据被转换成键值对
键值对用&
连接,键和值之间用=
连接。键和值都会进行URL编码username=myusername&password=mypassword
application/json:JSON 数据(axios传递对象时默认)
application/xml:XML 数据
默认UTF-8,二进制方式传输,适用于不依赖于具体的字符编码
多媒体类型(multipart):
multipart/form-data:用于在 HTML 表单上传文件时的数据类型。
Content-Disposition: form-data; name="avatar"; filename="avatar.jpg"
文本类型(text):
text/plain:纯文本文件,例如 .txt 文件。
text/html:HTML 文档,用于网页。
text/css:层叠样式表文件,控制网页的样式。
text/xml:XML 数据。
需要Content-Type指定编码(charset=utf-8),纯文本传输
Content-Encoding/Accept-Encoding
Accept-Encoding: gzip, deflate
请求头
User-Agent:发起请求的用户代理(浏览器/应用程序)
Host:访问的主机名+端口
Origin:跨域请求时,指示请求的来源
Origin: https://www.example.com
Connection: keep-alive
Accept-Language:客户端 偏好的语言。
Accept-Language: en-US,en;q=0.5
凭证Credentials
(例如 cookies、HTTP 认证(用户名和密码)等)
Authorization:在需要身份验证的情况下,包含用于认证的凭据
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
withCredentials:是否发送凭据
Cookie: sessionid=abc123; username=johndoe
响应头
Set-Cookie:session_id=abcd123; Path=/; HttpOnly
Access-Control-Allow-Origin
Access-Control-Allow-Credentials:是否允许在跨域请求中包含凭据Credentials
Server:HTTP服务器的信息
Server: Apache/2.4.29 (Ubuntu)
Location:客户端重定向的URL。
Location: https://www.example.com/new-page
Content-Range: bytes <start>-<end>/<total> 分段下载
Content-Disposition:如何显示响应体,通常用于下载文件
Content-Disposition: attachment; filename="document.pdf"