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