HTTP:
概念
HTTP是一种超文本传输协议,通过请求/响应模型来传输数据,客户端发送一个HTTP请求到服务器,服务器响应一个HTTP响应。
缓存
GET请求会被浏览器主动缓存
状态码
- 1XX:请求接收,继续处理
- 2XX:成功
- 3XX:重定向 301永久,302临时
- 4XX:400 客户端发送报文有误 401 403 404
- 5XX:请求报文正确,服务器内部问题
501 请求的功能不支持
502 Bad Gateway 访问后端服务器发生错误
503 Service Unavailable 服务器当前忙,无法响应
504 Gateway Timeout 网关超时
HTTP和HTTPS
- HTTP 是明文传输协议,HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议
- HTTPS需要用到SSL证书,而HTTP不用
- HTTPS标准端口443,HTTP标准端口80
- HTTPS基于传输层,HTTP基于应用层
- HTTPS在浏览器显示绿色安全锁,HTTP没有显示
HTTP 报文头属性
- Accept:告诉客户端接收什么类型响应
- Cache-Control:对缓存进行控制,可以设置缓存多久
- Accept-Encoding:告诉服务器能接受什么的编码格式
- Host:指定请求资源所在主机与端口
- Connection:决定三次握手或者四次挥手后是否关闭网络连接(keep-alive close)
Cookies和Session
Cookies和Session是用于在客户端和服务器之间存储信息的技术。Cookies是在客户端存储信息的,Session是在服务器端存储信息的。它们的用处是用来跟踪用户的状态,如登录信息等。
TCP三次握手
- 客户端 发送带有SYN标志的数据包 一次握手 到服务端
- 服务端 发送带有SYN/ACK标志的数据包 二次握手到客户端
- 客户端 发送带有ACK标志的数据包 三次握手到服务端
四次挥手
断开一个TCP连接需要四次挥手
举个例子:A 和 B 打电话,通话即将结束后,A 说“我没啥要说的了”,B 回答“我知道了”,但是 B 可能还会有要说的话,A 不能要求 B 跟着自己的节奏结束通话,于是 B 可能又巴拉巴拉说了一通,最后 B 说“我说完了”,A 回答“知道了”,这样通话才算结束。
- 客户端 发送一个FIN,用来关闭客户端到服务器的数据传送
- 服务器收到这个FIN,发回一个ACK,确认序号为收到的序号加1。 和SYN一样,一个FIN将占用一个符号。
- 服务端 关闭于客户端的连接,发送一个FIN给客户端
- 客户端 发回ACK报文确认 并将确认序号设置为收到序号加1
TCP、UDP的区别
UDP在传送数据之前不需要建立连接,远程主机在收到UDP报文后,不需要给出任何确认。但是用于即时通信是一种有效的工作方式。QQ语音、视频。
TCP提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或者多播服务。TCP一般用于文件传输、发送和接收邮件、远程登录等场景。