js 面试 http 与 https, 长连接,http状态码,哪三次握手,在浏览器地址栏键入URL回车之后过程?

1 概念

http是超文本传输协议,信息明文传输。

https安全超文本传输协议, 以安全为目标的HTTP通道,在HTTP的基础上通过身份认证传输加密阶段保证了传输过程的安全性.

https:主要是增加了TLS(Transport Layer Security 安全传输层协议)/SSL(Secure Sockets Layer 安全套接层协议)

2 区别:

http:

1)传输明文:存在信息窃听、信息篡改和信息劫持的风险

2) 端口号80 

3)连接是无状态的

https:

1)传输加密:TLS/SSL具有身份验证、信息加密和完整性校验的功能避免http明文传输导致的风险

2)需要ca证书免费的少,需要一定费用

3)端口443 

4)目前发展到2.0 是支持长连接的

3 为什么https比http安全?

因为网络请求需要中间有很多的服务器路由器的转发。中间的节点都可能篡改信息,而如果使用 HTTPS ,密钥在你和终点站才有。 https 之所以比 http 安全,是因为他利用 ssl/tls 协议传输。它包含证书,卸载,流量转发,负载均衡,页面适配,浏览器适配,refer传递等。保障了传输过程的安全性

4 长连接好处?

长连接不好之处:

        消耗服务器资源

5 http 常用状态码:

200:请求成功,并返回数据

301:永久重定向

302:临时移动(重定向),可使用原有的URL

304:资源未修改,可使用缓存

400:请求语法错误(一般为参数错误)

403:没有权限访问

404:找不到资源

500:服务器内部错误

6 三次握手?

遵照下图 

第一次握手:客户端发生一个请求,服务端知道有个客户端要连接我。

第二次握手:服务端接受到客户端发送的请求,会开启一个tcp socket端口,然后返回给前端。

第三次握手:客户端接受到服务器端发送的请求,证明已经建立连接可以通信了。

为什么要3次握手?

        1)防止开启无用连接    2) 网络延时丢包 3)服务端无法确定客户端有没有收到消息

7 在浏览器地址栏键入URL回车之后过程?

   7-1

(1)域名解析。

(2)发起TCP的3次握手。

(3)建立TCP连接后,客户端发起HTTP请求。

(4)服务器端响应HTTP请求,浏览器得到HTML代码。

(5)浏览器解析HTML代码,并请求HTML代码中的资源。

(6)浏览器对页面进行渲染并呈现给用户。

7-2  (参考)

  1. 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
  2. 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
  3. 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
  4. 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
  5. 释放 TCP连接;(视具体的协议而定)
  6. 浏览器将该 html 文本并显示内容;  

  • 21
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值