# HTTP基础知识
# 状态码
- 1xx 一般代表服务器接到请求
- 2xx 200 代表服务器接到请求,成功返回数据
- 3xx
-- 301(永久重定向),请求返回location,之后都是一直跳转location(比如新老域名的替换)
-- 302(临时重定向),请求返回location,临时跳转到某一地址(比如百度搜索,一般都是先请求到百度,在转到相应的目标网站)。
-- 304本地有资源,读取本地资源。用于缓存。
- 4xx 403权限禁止访问 404params或者url有问题
- 5xx 服务端报错
# HTTP进化
# HTTP1.0
HTTP 1.0中 每进行一次通讯,都需要发TCP连接 传输 HTTP 数据和断开 TCP 。这样无疑效率太低。
一个CDN上最多建立,6个TCP连接。且 建立TCP连接需要三次握手耗时。
# HTTP1.1
开启TCP长连接的标识 Connection:keep-alive
- 1 队头阻塞的问题
HTTP/1.1 中使用持久连接时,虽然能公用一个 TCP 管道,但是在一个管道中同一时刻只能处理一个请求,在当前的请求没有结束之前,其他的请求只能处于阻塞状态。这意味着我们不能随意在一个管道中发送请求和接收内容。
- 2 慢启动
建立TCP连接有个慢启动。刚开始传输数据慢。
# HTTP2.0
- HTTP2.0 一个域名只使用一个 TCP 长连接和消除队头阻塞问题
- 以 HTTP/2 需要实现资源的并行请求,也就是任何时候都可以将请求发送给服务器,而并不需要等待其他请求的完成,然后服务器也可以随时返回处理好的请求资源给浏览器。
HTTP/2 使用了多路复用技术,可以将请求分成一帧一帧的数据去传输,这样带来了一个额外的好处,就是当收到一个优先级高的请求时,比如接收到 JavaScript 或者 CSS 关键资源的请求,服务器可以暂停之前的请求来优先处理关键资源的请求。
# HTTP VS HTTPS
1、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
4、https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密。防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名。另外是加密,加密需要一个密钥交换算法,双方通过交换后的密钥加解密。