tcp/ip协议是什么?
tcp/ip协议,不是一种协议,而是一堆协议的总称,一共有4个层
- 应用层:主要是用户通信工作(http协议)
- 传输层:主机到主机之间传递数据,包含主机的端口,这里会格式化信息,提供可靠的传输 (tcp/udp协议)
- 网络层:是地址和地址之间的通信 (ip协议)
- 链路层:是设备到设备之间的通信
tcp的三次握手
- SEQ: 消息发前,一共发送了多少字节
- ACK:消息发送前,一共收到了多少字节 通过seq和ack可以准确保证,链接对话的正确行
三次握手的时候,客户端先发出问候到达服务端,服务端作出回应,客户端确认服务端可以通信之后,在发出现在开始通信的信号。保证了数据传输的稳定性。
udp
upd协议加快数据传输的速度,但是不保证数据传输的稳定性。
http状态码
- 1xx:提示信息-请求被成功接收,继续处理
- 2xx:成功-请求成功,接受处理
- 3xx:重定向-要完成请求必须进行下一步处理
- 4xx:客户端错误-请求有语法错误或者请求无法实现
- 5xx:服务器错误-服务器没能实现合法请求
http1.0
缓存使用If-Modified-Since,Expires
http1.1
- 缓存使用 Entity tag,If-Unmodified-Since, If-Match, If-None-Match
- http1.1中,多个文件公用一个tcp链接,这样多个文件只用进行一次三次握手,避免了三次握手的消耗,但是文件之间产生了排队的问题。一个文件传递失败,或者传递过慢,别的文件就必须等待,会造成队头阻塞。
http2.0
- 多个请求多路复用:流的形式传输,每个流都有固定的id,确保接受方,能够识别
- 防止队头阻塞
- 压缩http头部:使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。
- 服务端推送
- 采用二进制格式
https
https采用对称加密和非对称加密混合的方式,在https数据传输中最开始还要经历一次tcp的三次握手