网络
1. HTTP/HTTPS
HTTP:超文本传输协议.HTTPS:安全性高的超文本传输协议(S代表:SSL协议/TLS协议,非对称加密方案传输)
结构内容:
1. 请求报文
2. 响应报文
HTTP的请求都有哪些?
1. GET,POST,HEAD,DELETE,PUT,POTIONS
思考:GET和POST都有哪些区别?
1. GET参数直接以?形式拼接,POST请求参数放在Body内
2. GET参数长度存在限制一般不传输大数据,POST没有限制
3. GET请求安全性低,POST相对较高.
从定义规范来回来GET是用于获取资源,POST处理资源.
2.数据传输建立流程.为什么需要这样进行?(三次握手四次挥手)
1. 建立连接(3次握手:客户端和Server进行了三次交互,并在每次交互中发送一定交互信息)
1. Client发送SYN同步报文到Server
2. Server返回同步ACK报文+SYN报文.
3. Client会再次回应ACK报文.
2. 发送数据
请求报文,响应报文
3. 断开连接(4次分手:客户端和Server进行了四次交互,并在每次交互中发送一定交互信息)
1. Client发送Fin终止报文
2. Server返回ACK确认报文(此时Client端到Server连接断开,但是Server到Client端还会传递数据.存在数据没传完情况)
3. Server发送Fin,ACK报文
4. Client发送ACK确认报文(此时断开双方连接)
为什么需要三次握手?四次挥手?
比如客户端发送连接建立请求的SYN同步报文如果发生超时时(网络等其他因素产生逗留了),客户端会启用超时重传策略,重新发送SYN同步报文.这次Server返回SYN+ACK确认报文,如果是两次握手此时已经建立连接.此时又接收到第一次客户端发送的SYN同步报文,Server会认为你又需要建立一次连接,继续返回SYN+ACK报文.第三次客户端ACK报文就可以只发送一次,确定哪次需要建立请求,以避免这次超时.
四次挥手:此时clent和server是全双工通道,需要双方连接断开.
HTTP特点:
无连接.
无状态.
思考:那针对HTTP的无连接特点怎么实现持久连接?(在一定时间内多个请求在一个TCP链路上传输,避免多次三次握手四次分手)
头部字段:
Connection:keep-akive:含义客户端期许使用持久连接
time:20:期许时间
max:10:这个连接最多可以发生多少请求和响应对.
怎样判断一个请求是否结束?
Content-length:1024
chunked,最后会有一个空的chunked
Charles抓包原理?
中间人攻击:客户端向Server传输数据时,初线中间人,假冒客服端向服务器请求数据,再把服务器请求的数据传递给客户端.可以篡改数据.
思考:HTTP和HTTPS的区别.
HTTPS是HTTP和SSL/TLS协议组成的,是安全的HTTP协议.连接建立过程中采用非对称加密,但是耗时,后续的传输过程使用对称加密.
非对称加密:
公钥加密,私钥解密.私钥加密,公钥解密.公钥客户端,私钥只要服务器端.公钥多把,私钥只有一个.
TCP/UDP:传输控制协议和用户数据包协议.
UDP:用户数据包协议
特点:无连接,尽最大努力交付(不保证可靠传输),面向报文(既不合并也不拆分,直接将应用层报文一起封装到UDP内传输).
功能:复用,分用.差错检测
复用分用:无论哪个端口传输数据都可以复用UDP.每个数据都有目睹端口ip地址,可以将UDP分用给对应端口.
差错检测:UDP首部会存在差错检错字段,用于检测数据传输正确性.
TCP:传输控制协议
特点:面向连接,可靠传输,面向字节流,流量控制,拥塞控制.
面向连接:数据传输之前需要建立连接,数据断开时需要断开连接.
可靠传输:停止等待协议:无差错(超时重传,确认丢失,确认迟到),不丢失,不重复,按序到达.
面向字节流:TCP会根据实际情况划分字节,分段传输.
流量控制:滑动窗口协议,机制:发送窗口的大小,一方面取决于发送缓存的大小,另一方面由接收方接收大小控制.接收窗口的大小受限于接收缓存,接收窗口的大小可以通过TCP报文首部的窗口值来反向制约发送方发送窗口的大小来控制发送速率.
拥塞控制:快恢复,快重传,重点:慢开始,拥塞避免算法策略快.开始发送报文窗口指数增长,慢开始,然后到门限值,采用拥塞避免策略采用线性增长窗口.直到产生拥塞(比如发送报文连续三个确认ACK都没有收到).此时需要采用拥塞避免乘法减小策略.然后重新慢开始,同时减低门限值.
DNS解析
是否了解DNS解析?是怎样的一个过程?
域名到IP地址的映射,DNS解析请求采用UDP数据包明文.
client向Server进行网络请求时,需要先经历DNS解析的过程,也就是域名到IP地址映射的过程,客户端会将域名通过DNS服务器解析DNS服务器返回对应的IP地址,再由客户端向对应的IPServer发送网络请求.
.
网友评论