一些有关HTTP和HTTPS的问题(容易忽略的前端面试题)
http和https有什么联系?它们的默认端口号都是多少?
- http通常承载于tcp之上,在http和tcp之间,添加一个安全协议层(SSL或者TSL)就成为了我们常说的https;
- http默认的端口号为80,https默认的端口号为443。
为什么HTTPS更加安全?
在使用http发送网络请求的过程中,需要经过许多的服务器,以及路由器的转发,其中的任意一个路途节点都可能篡改我们请求中携带的信息。而如果使用https的话,只有终点站才存在解析请求的秘钥。
https之所以比http更加安全是因为它利用了SSL/TLS协议传输信息,它包含了证书、卸载、流量转发、负载均衡、页面适配、浏览器适配、refer传递等技术。保障了传输过程的安全性。
什么是HTTP/2?
HTTP/2引入了“服务端推送(server push)”的概念。允许服务器端在客户端请求获取数据之前,主动将数据发送到客户端缓存中,从而提高运行时的性能。
并且HTTP/2提供更多的加密支持。它使用多路技术,允许多个消息在一个连接上同时交参;它增加了头压缩(header compression),因此请求所需的带宽非常小,请求和响应的header都只会占用很小的带宽比例。
完整的HTTP事务流程是怎样的?
基本流程如下:
- 域名解析;
- 发起TCP三次握手;
- 建立TCP连接后发起HTTP请求;
- 服务器端响应HTTP请求,浏览器得到HTML代码;
- 浏览器解析HTML代码并请求HTML代码中的资源;
- 浏览器对页面进行渲染并呈现给用户。
什么是HTTP无协议状态?如何克服HTTP无状态的缺陷?
无状态协议指的是对于事务处理没有记忆能力。而缺少状态意味着如果后续处理事务时需要前面提供的信息的话,无法进行正确的提供,则会导致请求无法正常完成。
克服无状态协议缺陷的办法是通过cookie和会话保存信息。
HTTP1.1的新特性有哪些?
- 默认持久连接,节省通信流量。只要客户端,服务端中任意一端没有明确指出断开TCP连接,就一直保持连接状态,可以多次发送HTTP请求。
- 管线化客户端。可以同时发出多个HTTP请求,而不用等待响应断点续传。
什么是反向代理?
所谓的方向代理(Reverse Proxy)是指通过代理服务器来接收互联网上的连接请求,然后将请求转发给内部网络上的服务器,并把从服务器上得到的结果返回给互联网上请求连接的客户端。此时代理服务器对外就表现为一个反向代理服务器。
这里是万物之恋,祝大家小年快乐,我们下次再见了!