这是我参与「第五届青训营 」伴学笔记创作活动的第5天
HTTP使用指南
1. 初识
1.1 什么是HTTP
- Hyper Text Transfer Protocol 超文本传输协议
- 应用层协议,基于TCP 协议
- 请求响应
- 简单可扩展
- 无状态(没有记忆能力,每个请求都是独立的)
1.2 基本特点
TCP协议的特点:
- 面向连接
- 点对点(一对一)
- 可靠支付
- 面向字节流,也就是说仅仅把上层协议传递过来的数据当成字节传输。
为了实现TCP上述的特点,TCP协议需要解决的是面向连接(建立连接2和关闭连接的方式)、可靠传输(错误确认和重传)、流量控制(发送方和接收方的传输速率协调)、拥塞控制四个方面.
2. 协议分析
2.1 持续发展
HTTP/1.1 1997年,HTTP/2 2015年,在16年中68%的请求都是HTTP/2
2.2 报文
以HTTP/1.1 为例
Method
- Safe(安全的):不会修改服务器的数据的方法,例如:GET、HEAD、OPTIONS
- Idempotent(幂等):同样的请求被执行一次与连续执行多次效果是一样的,服务器的状态也是一样的,所有的safe的方法都是Idmpotent的,例如:GET、HEAD、OPTIONS、PUT、DELETE
状态码
- 200OK-客户端请求成功
- 301-资源(网页等)被永久转移到其他URL
- 302-临时跳转
- 401 Unauthorized-请求未经授权
- 404-请求资源不存在,可能是输入了错误的URL
- 500-服务器内部发生了不可预期的错误
- 504 Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应
RESTFUL API
一种API设计风格;REST-Representational State Transfer
- 每一个URL代表一种资源;
- 客服端和服务器之间,传递这种资源的某种表现层
- 客户端通过HTTP method,对服务器端资源进行操作,实现“表现层状态化”
常用请求头
常用响应头
缓存
强缓存
- Expires,时间戳
- Cache-Control
- 可缓存性
- no-cache:协商缓存验证
- no-store:不使用任何缓存
- 到期
- max-age:单位是秒,存储的最大周期,相对于请求的时间
- 重新验证*重新加载
- must-revalidate:一旦资源过期,在成功向原始服务器验证之前,不能使用
- 可缓存性
协商缓存
- Etag/If-None-Match:资源的特定版本的标识符,类似于指纹
- Last-Modified/If-Modified-Since:最后修改时间
cookie
Set-Cookie-response
2.3 发展
HTTP/2概述:更快、更稳定、更简单
- 二进制
- 交错发送,接收方重组织
- 服务器推送
HTTPS概述
-
HTTPS:Hypertext Transfer Protocol Secure
-
经过TS/SSL加密
-
对称加密:加密和解密都是使用同一个密钥
-
非对称加密,加密和解密需要使用两个不同的密钥:公钥(public key)和私钥(private key)
对比
3. 总结
这是年前的最后一次课,理论知识有很多,掌握协议的知识,了解内部的传输数据,案例是最能实践的,以上主要为基础知识,还是要多加练习使用