浏览器的工作步骤
- 用户输入url
- 浏览器从本地缓存查找有无访问信息,有则直接读取,无则向当地配置网络的dns服务器发送查询请求。
- 查找到对应IP地址后,发送连接请求(TLS七次握手)。
- 客户端发送资源请求(http/https...),一般分为请求行、请求头和请求体。
- 服务器发送资源,以及状态码等信息。
- 浏览器接收资源:解析文档,构建DOM树、CSSOM树,将俩合成一个渲染树。浏览器根据渲染树的信息对页面进行布局,最后将内容绘制到页面上。
名词解释:
- DNS(Domain Name System): 域名与ip地址之间的翻译官。将用户输入的域名翻译为机器可理解的ip地址,进行通讯。
- TLS7次握手:
- 客户端生成随机数R1,请求服务。
- 服务端确定加密套件,生成随机数R2,请求客户端。
- 服务端下发证书给客户端。
- 客户端验证证书合法性,验证身份,取出公钥,生成随机数R3,再用公钥与R3生成PreMaster Key,传回给服务端。
- 服务端通过私钥解密得到R3,届时两端都拥有随机数R1、R2、R3。两端根据相同算法生成一段秘钥用于这次加密通信。
- 客户端发送第一条加密信息,服务端返回解密成功后,返回信息告知客户端之后都使用加密。
- 数据传输。
- http常用状态码:
- 200(请求成功)、201(创建新资源成功)、204(请求处理完成,没有返回)
- 301(请求资源已永久搬迁)、302(请求资源临时从别的地方返回)
- 400(请求格式错误)、401(无权限)、403(服务器接收成功,但拒绝处理)、404(无法找到资源)、408(请求超时)
- 500(服务器内部错误)、502(网关获取无效的上游服务器响应)、503(服务器过载)、504(收不到上游服务器请求)