谈谈你所理解的 HTTP 协议?
http协议是无状态的,简化了服务器的设计,支持大量并发请求。
采用TCP作为运输层协议,保证了数据的可靠性。但是http协议本身是无连接
的,在通信双方交换http报文之前不需要先建立http连接。
HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。
1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
2)在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。
** 访问一个网址的流程:
a:域名解析
b:tcp3次握手建立连接
c:建立连接后,发起http请求
d:服务器端响应http请求,浏览器得到http请求的内容
e:浏览器解析html代码,并请求html代码中的资源
f:浏览器通过页面渲染,展现在用户面前
Http和Https的区别
Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP。HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
二者之间存在如下不同:
端口不同:Http与Https使用不同的连接方式,用的端口也不一样,前者是80,后者是443;
资源消耗:和HTTP通信相比,Https通信会由于加减密处理消耗更多的CPU和内存资源;
开销:Https通信需要证书,而证书一般需要向认证机构购买;
Https的加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。