HTTP协议总结

282 阅读4分钟

HTTP

  • Hyper Text Transfer Protocol 超文本传输协议
  • 应用层

HTTPS

  • Hyper Text Transfer Protocol over SecureSocket Layer
  • HTTPS = HTTP + SSL

HTTP协议版本

image.png

HTTP协议主要特点

  1. 支持客户、服务器模式:请求-响应模型
  2. 简单快速:请求服务时,只需要传送请求方法和路径
  3. 灵活:允许传输任意类型的数据对象
  4. 无连接: 限制每次连接只处理一个请求,服务器处理完请求后即断开连接,节省资源
  5. 无状态:并不保留之前一切的请求或响应报文的信息,对于事务处理没有记忆能力

HTTP请求工作流程

image.png

HTTP请求方法

image.png

HTTP消息结构

image.png 示例: image.png image.png

头域

通用头域描述
ConnectionHTTP通信时浏览器想要优先使用的连接类型: keep-alive close(开启和关闭持久连接)
Cache-Control控制缓存的行为:no-cache(强制向服务器再次验证)、no-store(不做任何缓存)、max-age=111111(资源可缓存最大时间 秒)、public(客户端、代理服务器都可利用缓存)、private(代理服务器不可用缓存)
Date创建报文时间
Pragma只用于请求报文,客户端要求中间服务器不返回缓存的资源
Via代理服务器相关信息,每经过一个代理服务器就会添加相关信息,用逗号分割
Transfer-Encoding传输编码方式:chunked分块传输
Upgrade要求客户端使用的升级协议,需配合Connection: Upgrade一起使用:websocket
Warning缓存相关问题的警告
请求头域描述
Accept客户端能正确接收的媒体类型:application/json text/plain
Accept-Charset能正确接收的字符集: unicode-1-1
Accept-Encoding能正确接收的编码格式列表:gzip deflate
Accept-Language能正确接收的语言列表:zh-cn,zh;1=0.9,en,1=0.8
Authorization客户端认证信息:Bearer dSdSdFFlsfdjasd123,一般存token用Cookie发送给服务器的Cookie信息Expect期待服务端的指定行为From请求方邮箱地址Host服务器的域名,用于区分单台服务器多个域名的虚拟主机,是HTTP/1.1唯一必须包含的字段。
If-Match两端资源标记比较,只有判断条件为真服务端才会接受请求:If-Mach: "123456,和服务端文件标记比较
If-Modified-Since本地资源未修改返回 304(比较时间)
If-None-Match本地资源未修改返回 304(比较标记)
User-Agent客户端信息,常用于识别客户端使用的浏览器
Max-Forwards限制可被代理及网关转发的次数
Proxy-Authorization向代理服务器发送验证信息
Range请求某个内容的一部分,配合If-Range使用
Referer请求发起页面的原始URITE传输编码方式,常用于防止盗链和恶意请求
响应头域描述
Accept-Ranges告知客户端服务器是否可接受范围请求,是bytes,否none
Age资源在代理缓存中存在的时间
ETag资源标识,资源发生变化时标识也会发生改变
Location客户端重定向到某个 URL
Proxy-Authenticate向代理服务器发送验证信息
Server服务器名字:Apache Nginx
WWW-Authenticate获取资源需要的认证方案
Set-Cookie需要存在客户端的信息,一般用于识别用户身份
实体头域描述
Allow资源的正确请求方式:GET HEAD POST
Content-Encoding内容的编码格式:gzip deflate
Content-Language内容使用的语言:zh-CN
Content-Lengthrequest body 长度(即实体主体的大小):
Content-Location返回数据的备用地址
Content-MD5Base64加密格式的内容 MD5检验值
Content-Range响应主体的内容范围
Content-Type内容的媒体类型(如'application/json;charset=UTF-8'则会发送预检请求)
Expires内容的过期时间
Last_modified内容的最后修改时间
扩展头域描述
Cookie将Cookie的值发送给服务器
Set-Cookie设置和页面关联的Cookie
Refresh浏览器经过指定时间后刷新文档或跳转到指定位置
Content-Disposition服务器对可下载资源的描述

HTTP状态码

image.png