大厂面试---Redis面试题(含答案,相关知识点,面试考察次数统计)
大厂面试问答题汇总分析---数据库(索引-聚集/非聚集,事务,mySql, 锁)
目录
1-1、一次完整的HTTP请求过程。(浏览器输入URL点击回车发生了啥?)
1-5、什么是SSL ?https是如何保证数据传输的安全(SSL是怎么工作保证安全的)
一、HTTP
1-1、一次完整的HTTP请求过程。(浏览器输入URL点击回车发生了啥?)
域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户。
1-2、HTTP和HTTPS的区别是什么?
HTTPS 是 SSL/TLS之上的HTTP协议,HTTPS除了TCP的三个包,还要加上ssl握手需要的9个包,所以一共是12个包。与http的区别如下:
1、端口: https的端口是443,而http的端口是80
2、传输数据: http传输是明文的,而https是用ssl进行加密的,https的安全性更高
3、申请证书: https是需要申请证书的,而http不需要
4、连接: http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
1-3、http长连接和短连接的区别
可参考:http的长连接和短连接(史上最通俗!) - abcdefghijklmnop - 博客园
在HTTP/1.0中默认使用短连接, 也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接.
HTTP/1.1起,默认使用长连接,用以保持连接特性。
HTTP协议是基于请求/响应模式的,因此只要服务端给了响应,本次HTTP连接就结束了,或者更准确的说,是本次HTTP请求就结束了,根本没有长连接这一说。那么自然也就没有短连接这一说了。之所以网络上说HTTP分为长连接和短连接,其实本质上是说的TCP连接。TCP连接是一个双向的通道,它是可以保持一段时间不关闭的,因此TCP连接才有真正的长连接和短连接这一说。
说HTTP请求和HTTP响应会更准确一些,而HTTP请求和HTTP响应,都是通过TCP连接这个通道来回传输的。
HTTP1.1协议,基本上Connection都是keep-alive。HTTP1.1默认是长连接,也就是默认Connection的值就是keep-alive。
长连接是为了复用,也就是说复用的是TCP连接,长连接情况下,多个HTTP请求可以复用同一个TCP连接,这就节省了很多TCP连接建立和断开的消耗
举例,比如你请求了博客园的一个网页,这个网页里肯定还包含了CSS、JS等等一系列资源,如果你是短连接(也就是每次都要重新建立TCP连接)的话,那你每打开一个网页,基本要建立几个甚至几十个TCP连接,这浪费了很多资源。
但如果是长连接的话,那么这么多次HTTP请求(这些请求包括请求网页内容,CSS文件,JS文件,图片等等),其实使用的都是一个TCP连接,很显然是可以节省很多消耗的。
长连接并不是永久连接的。如果一段时间内(具体的时间长短,是可以在header当中进行设置的,也就是所谓的超时时间),这个连接没有HTTP请求发出的话