HTTP
2023-01-18 17:24:42 2 举报
AI智能生成
HTTP协议大纲
作者其他创作
大纲/内容
安全
内容安全策略(CSP)
威胁
跨站脚本攻击
数据包嗅探攻击
策略
制定策略
描述策略
示例
所有内容均来自站点的同一个源
内容来自信任的域名及其子域名
内容中包含来自任何源的图片但是限制音频
确保网站的所有内容都要通过SSL方式获取
公钥锁定策略(HPKP)
提取Base64编码的公钥信息
HPKP头示例
中间件使用示例
Apache
Nginx
IIS
严格传输策略(HSTS)
语法
指令
描述
示例
HTTP cookies
使用场景
会话状态管理
个性化设置
浏览器行为跟踪
创建Cookie
标记
Secure标记
HttpOnly标记
类型
会话期Cookie
持久性Cookie
Cookie的作用域
SameSite Cookies
会话劫持和XSS
跨站请求伪造(CSRF)
X-Content-Type-Options 消息头
语法
指令
X-Frame-Options 响应头
语法
指令
中间件示例
Apache
Nginx
IIS
HAProxy
Express
X-XSS-Protection
语法
示例
PHP
Apache
Nginx
请求和响应
请求
CONNECT
DELETE
GET
HEAD
OPTIONS
PATCH
POST
PUT
TRACE
响应
1
100 Continue
一切正常
101 Switching Protocol
切换协议
103 Early Hints
预加载资源
2
200 OK
请求成功
201 Created
成功创建资源
202 Accepted
服务端已受到请求
203 Non-Authoritative Information
存在代理修改的成功响应
204 No Content
请求成功 客户端不需要离开当前页面
205 Reset Content
客户端重置文档视图
206 Partial Content
分块响应成功
3
300 Multiple Choices
请求拥有多种可能的响应
301 Moved Permanently
固定的不会再改变
302 Found
重定向 但链接不更新
303 See Other
指向另一个页面
304 Not Modified
无需再次传输请求的内容
307 Temporary Redirect
临时的重定向
308 Permanent Redirect
永久的重定向
4
400 Bad Request
服务器无法理解请求
401 Unauthorized
缺乏目标资源要求的身份验证凭证
402 Payment Required
付费后才可获取
403 Forbidden
服务端拒绝授权访问
404 Not Found
无法找到所请求的资源
405 Method Not Allowed
请求方法被禁止
406 Not Acceptable
无法提供指定的协商
407 Proxy Authentication Required
代理服务器要求的身份验证未满足
408 Request Timeout
关闭没有在使用的连接
409 Conflict
请求与目标资源状态产生冲突
410 Gone
目标资源在原服务器上不存在
411 Length Required
(分块时)缺少长度头Content-Length
412 Precondition Failed
条件请求失败
413 Payload Too Large
请求主体大小超过了服务器限度
414 URI Too Long
URI 超过了服务器允许的范围
415 Unsupported Media Type
不支持载荷的格式
416 Range Not Satisfiable
无法处理所请求的数据区间
417 Expectation Failed
服务器无法满足期望条件
418 I'm a teapot
服务器拒绝冲泡咖啡(......)
422 Unprocessable Entity
服务器无法处理所包含的指令
425 Too Early
服务器不愿意冒风险过早处理该请求
426 Upgrade Required
请求协议需要升级
428 Precondition Required
前置条件验证失败
429 Too Many Requests
请求超过了频次限制
431 Request Header Fields Too Large
请求头字段过大超过服务器限制
451 Unavailable For Legal Reasons
因法律原因不可用
5
500 Internal Server Error
服务端中存在错误响应
501 Not Implemented
请求的方法不被服务器支持
502 Bad Gateway
上游服务器响应错误
503 Service Unavailable
服务器尚未处于可以接受请求的状态
504 Gateway Timeout
无法在规定的时间内从上游获得想要的响应
505 HTTP Version Not Supported
服务器不支持请求所使用的 HTTP 版本
506 Variant Also Negotiates
变量参与了内容协商
507 Insufficient Storage
不能存储相关内容
508 Loop Detected
处理具有“Depth: infinity”的请求时遇到了无限循环
510 Not Extended
无法响应扩展请求
511 Network Authentication Required
需要预先授权验证
基本概念
概述
客户端
Web服务端
代理Proxies
HTTP 流
1.打开一个TCP连接
2.发送一个HTTP报文
3.读取服务端返回的报文信息
4.关闭连接或者为后续请求重用连接
HTTP报文
请求
Method
Path
Protocol
Headers
响应
Protocol
Status code
Status message
Headers
连接
短连接
长连接
Websocket
资源和URIs
网络资源标识
URLs
URNs
Data URIs
语法
URI
协议
data
file
ftp
http/https
mailto
ssh
tel
urn
view-source
ws/wss
主机
ip地址
域名地址
域名分片
端口
80
433
路径
资源路径
查询
参数
片段
锚点
MIME类型
独立类型
Multipart 类型
常见类型
访问控制
跨域访问
使用场景
XMLHttpRequest(ajax)
fetch
功能概述
相关请求头
Accept
Accept-Language
Content-Language
Content-Type
Access-Control-Request-Method
Access-Control-Request-Headers
Access-Control-Allow-Origin
Access-Control-Allow-Credentials
Access-Control-Expose-Headers
Access-Control-Max-Age
Access-Control-Allow-Headers
身份认证
代理认证
Proxy-Authenticate
拒绝访问
403
图片认证
资源认证
WWW-Authenticate
服务认证
Authorization
验证方案
安全性
Apache
Nginx
缓存
缓存类型
(私有)浏览器缓存
(共享)代理缓存
网关、CDN、反向代理、负载均衡
缓存操作的目标
Get响应
永久重定向 301
错误响应 404
不完全的响应 206
缓存控制
Cache-Control(Pragma)
: no-store 没有缓存
: no-cache 缓存但重新验证
: private 私有缓存
: public 公共缓存
: max-age=<seconds> 过期时间
此时忽略Expires
缓存更新
资源更新时为新资源设置版本号
原有资源也可以访问到
分布式场景中各个节点版本会不同
缓存验证
Cache-Control: must-revalidate
验证方式
ETag
缓存校验
If-None-Match (If-Match)
校验匹配
此时忽略Last-Modified
Vary 响应
Vary: User-Agent
数据压缩
各种文件格式的压缩
端到端压缩技术
Accept-Encoding
Content-Encoding
条件请求
基本原理
验证器
last-modified
etag
条件首部
If-Match
If-None-Match
If-Modified-Since
If-Unmodified-Since
If-Range
应用场景
缓存更新
增量下载的完整性
使用乐观锁避免更新丢失问题
处理资源的首次上传问题
内容协商
基本原则
协商机制
Accept
内容类型
Accept-CH
客户端提示
Accept-Charset
字符集类型
Accept-CH-Lifetime
Accept-CH标头有效时间
Accept-Encoding
支持的压缩算法
Accept-Language
支持的自然语言
User-Agent
用户代理软件(客户端)
Vary
未来的请求头
请求范围
Accept-Ranges
单一范围
Range
多重范围
multipart/byteranges
条件式范围请求
If-Range
分块编码
Transfer-Encoding
重定向
类别
永久重定向
301
Moved Permanently
网站重构
308
Permanent Redirect
网站重构
临时重定向
302
Found
页面暂不可用
303
See Other
防止写操作重复触发
307
Temporary Redirect
页面暂不可用
特殊重定向
300
Multiple Choice
手动重定向
304
Not Modified
验证条件请求
非Http方式
HTML
JavaScript
优先级
HTTP协议
HTML
JavaScript
应用场景
域名别称
保持链接有效
对于不安全请求的临时响应
对于耗时请求的临时响应
服务器中的配置
Apache
Nginx
重定向死锁
0 条评论
下一页