这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
初识HTTP
什么是HTTP
全程:超文本传输协议
它是一种应用层协议,基于TCP
协议分析
发展
HTTP 0.9 :请求GET/mypage.html,响应只有HTML文档
HTTP 1.0: 增加了Header 有了状态码、支持多种文档类型
HTTP 1.1 标准化协议:链接复用、缓存 内容协商
HTTP 2 : 二进制协议 压缩header 服务器推送
Method
| Method | 说明 |
|---|---|
| Get | 请求一个指定资源的表示形式,使用GET的请求应该只被用于获取数据 |
| POST | 用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用 |
| PUT | 用请求有效载荷替换目标资源的所有当前表示 |
| DELETE | 删除指定资源 |
| HEAD | 请求一个与GET请求的响应相同的响应,但是没有响应体 |
| CONNECT | 建立一个到由目标资源标识的服务器的隧道 |
| OPTIONS | 用于描述目标资源的通信选项 |
| TRACE | 沿着到目标资源的路径执行一个消息环回测试 |
| PATCH | 用于对资源应用部分修改 |
安全的:不会修改服务器数据的方法 GET HEAD OPTIONS
幂等:同样的请求执行一次和执行多次效果是一样的。 GET HEAD OPTIONS PUT DELETE
状态码
- 200 OK 客户端请求成功
- 301 资源被永久转移到其他URL
- 302 临时跳转
- 401 请求未授权
- 404 NOT FOUND 资源未找到
RESTful API
一种API设计风格
- 每一个URI代表一种资源
- 客户端和服务器之前,传递这种资源的某种表现层
- 客户端通过HTTP method,对服务器资源进行操作,实现“表现层状态转化”。
Cookie
set-Cookie - response
| Name=value | 各种cookie的名称和值 |
|---|---|
| Expires=Date | Cookie的有效期,缺省时Cookie仅在浏览器关闭之前有效 |
| Path=Path | 限制指定Cookie的发送范围的文件目录。默认为当前 |
| Domain=domain | 限制cookie生效的域名,默认为创建cookie的服务域名 |
| secure | 仅在HTTPS安全连接时,才可以发送cookie |
| HttpOnly | JavaScript脚本无法获得cookie |
| SameSite | - None 同站、跨站请求都可以发送 -Strict仅在同站发送 -Lax允许与顶级导航一起发送,并且将第三方网站发起的GET请求一起发送 |
HTTP/2
帧(frame) :http/2通信的最小单位,每个帧都包含帧头、二进制
消息:与逻辑请求或响应消息对应的完整的一系列帧
数据流:已建立的连接内的双向字节流,可以承载一条或多条消息
HTTP/2 连接都是永久的,而且仅需要每个来源一个连接,流控制:阻止发送方向接收方发送大量数据的机制、服务器推送
HTTPS
在HTTP的基础上经过 TSL/SSL加密
- 对称加密:加密和解密都是同一个秘钥
- 非对称加密:加密和解密需要使用两个不同的秘钥:公钥和私钥