前言:首先使用开发者工具中的网络可以看到几个不同颜色的阶段:
开头瞬间:初始链接阶段 即TCP三次握手阶段
紫色部分(htpps协议时):SSL(Secure Sockets Layer)加密阶段 //Q:emm..话说b站怎么也没见到有?
绿色部分:服务器准备阶段
蓝色部分:资源下载阶段
一、浏览器与网站建立连接
要建立连接,得先找到网站的服务器,即DNS先把域名解析到服务器,寻求域名解析的索引顺序:
本地缓存(hosts)→ 路由器电信服务器的DNS服务 → 网站域名服务商的DNS服务
接着按照不同的协议进行不同的会话过程:
HTTP协议:是客户端和服务器请求的应答标准(TCP),未加密。采用80端口。
HTTPS协议:服务器持有密钥,客户端持有公钥,规定了加密方式,且每次都有协商时间。使用了SSL+TCP,访问慢于http。采用443端口。
三次握手运用到网站中即
SYN为数据包标识,seq为序列号,listen为侦听端口,ACK为确认码
同样的,建立TCP连接时需要三次握手,终止时需要四次挥手:
运用到网站中即
Q:HTTPS数据传输的详细流程?
A:浏览器访问网站服务器建立SSL连接→服务器返回一份包含公钥的证书信息给浏览器→浏览器协商SSL连接的安全等级并建立会话密钥→浏览器利用公钥将会话密钥加密传到网站服务器→服务器利用自己的私钥解密出会话密钥→服务器再用会话密钥加密通信过程
A:此过程包含了一对非对称的公钥私钥,以及一对对称的会话密钥。
二、从网站下载资源到本地网页
不论是http还是https,只要建立连接之后就可以下载网站资源呈现到网页了,但也会有失败的几种情况,可根据不同的状态码查看失败原因。
在开发者模式中的网络选项下,选择网站就可以看到状态码:
200-299:一切正常
300-399:重定向 //301是永久重定向 302临时重定向 304带参数的重定向
400-499:我的错 //经典404代表网站输入错误
500-599:网站的错 //经典502代表网站服务器错误
三、总结
输入一个网址按下回车依次发生如下五个部分的内容,其中需要重点掌握的原理为第二三部分:
Step1、DNS解析域名对应的ip
Step2、三次握手进入初始化链接阶段
Step3、进入SSL加密协议握手
Step4、链接成功 服务器准备内容
Step5、浏览器下载并呈现内容
2023年1月20日01:46:27 妈呀,晚上写博客真是个上头且费肝的事儿,明天一定一定一定12点半前睡觉,呼!