1.什么是HTTP?HTTP的请求方式都有哪些?
HTTP其实就是 超文本传输协议。
GET
POST
HEAD
PUT
DELETE
OPTIONS
2. HTTP协议中,POST和GET的区别是什么?
GET是幂等的,并且是可缓存的,安全的。
POST是不幂等的,不可缓存的。不安全的。
GET:用来获取资源
POST:处理资源
安全性:不应该引起Server端的任何状态变化
幂等性:同一个请求方法执行多次和执行一次的效果完全相同
可缓存性:请求是否可以被缓存
3.HTTP的特点?
无连接:HTTP的持久连接
无状态:Cookie/Session
4.Charles抓包原理是怎样的?
利用了HTTP的中间人攻击漏洞来实现的。
5.HTTPS连接建立流程是怎样的??
客户端发送给服务端一个支持的加密算法列表。包括TLS的版本号以及随机数C。服务端给客户端一个证书和商定的加密算法。后续首先通过非对称加密进行对称加密的秘钥传输。之后HTTP之间的网络请求通过被非对称加密保护的对称秘钥进行网络访问。
image.png延伸:HTTPS都使用了哪些加密手段?为什么?
连接建立过程使用非对称加密
,非对称加密比较耗时
后续通信过程使用对称加密
6. 怎么解决DNS劫持?
httpDNS
长连接
7. TCP和UDP的区别?
TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
简单的说,TCP注重数据安全,而UDP数据传输快点,但安全性一般。
面向连接:数据传输开始之前,需要建立连接
非面向连接就是当要传输数据的时候是直接把数据发过去,不用像TCP那样预先执行三次握手建立连接
8.HTTPS和HTTP有怎样的区别?
HTTPS = HTTP + SSL/TLS
9.TCP的三次握手和四次挥手?
HTTP的连接建立流程,可以从这三个方面回答。(三次握手 请求响应 四次挥手)
image.png
三次握手:
1.客户端发起连接,发送一个SYN同步报文到server端
2.server端收到报文请求后,server端返回给客户端一个同步ACK的SYN报文
3.之后客户端再次回应一个ACK确认报文
4.然后就可以进行客户端的http的请求报文给server端
5.server端给客户端一个http响应报文
四次挥手:
6.客户端主动发起FIN终止报文连接断开
7.server端收到后,会给客户端一个ACK确认报文
8.(也许server端还在给客户端传输数据)在某一时刻,server端向客户端发送一个FIN,ACK终止报文断开连接
9.然后客户端向server端发送一个ACK确认报文
10.TCP为什么要三次握手?
屏幕快照 2020-07-16 下午8.35.54.png如果客户端发送请求的报文超时了。客户端会使用超时重传策略。重新发送一个syn同步报文。server收到后,会回复给客户端一个确认同步报文,如果只有两次握手。此时tcp连接已经建立。 假设server给客户端的报文之后,又收到了超时的syn同步报文,对于server来说,可能就认为客户端又要建立一个tcp连接,相当于server来说。客户端发了2次tcp连接。此时客户端只想要建立一次tcp连接。通过三次握手,可以解决这个问题。当接收到超时的syn后,客户端没有给server端发送ack确认同步报文,无法进行第二次连接。 三次握手主要是为了解决超时的问题。
网友评论