地址栏输入url到显示画面

  1. URL输入与解析

    浏览器判断输入的是否是合法url,如果不是合法url会进行默认搜索

    判断是否为合法url: 有合法协议头(如http://,https://,about:等)直接视为合法url=>没有协议头尝试解析为域名或IP(包含.,不全为数字是域名,全为数字是IP,不能包含空格,特殊字符(连字符除外))

    如果是url会进行url解析,提取协议,域名,端口,查询参数等

  2. DNS解析

    缓存查找: 在主机,路由器中的缓存中查找

    递归查找: 缓存查找找不到则向主机配置的本地DNS服务器发请求,本地DNS则依次向根域名,顶级域名,二级域名服务器发出请求依次查找直到找到目标服务器的IP

  3. TCP连接

    TCP三次握手: SYN=>SYN+ACK=>ACK

    TLS握手(HTTPS有这个): 客户端发送支持的密码套件和客户端随机数A=>服务端发送数字证书(包含公钥),选择的密码套件和服务端随机数B=>客户端认证数字证书,生成一段随机数作为预主密钥用公钥加密发送=>服务端用私钥解密,服务端和客户端都用相同的算法对(预主密钥,A,B)进行加密得到密钥

  4. 服务器处理并返回响应

  5. 浏览器接收并渲染

相关推荐
小此方7 小时前
Linux网络(二十):TCP拥塞控制与延迟应答详解:从拥塞窗口到TCP性能优化,理解TCP与UDP的效率差异
linux·网络·php
传人8 小时前
悬停旋转放大和位移效果如何写
前端·javascript·css
迪康coolmu8 小时前
屏幕水印与防拍照落地:从水印类型到泄密溯源的完整配置
运维·网络·安全·网络安全·数据安全
AIgorithmGEEK8 小时前
[Linux]HTTP 应用层协议全解(下篇)
linux·网络·网络协议·http·cookie·无连接·无状态
zhangzeyuaaa8 小时前
Ruby 方法参数完全指南:默认值、可变参数与关键字参数
前端·python·ruby
名誉寒冰8 小时前
我是怎么理解 eBPF、AppArmor 和 Seccomp 的?
linux·网络·内核
粥里有勺糖8 小时前
视野修炼-技术周刊第135期 | 鼠标跟随宠物
前端·github·aigc
粥里有勺糖8 小时前
拿 Codex 协助清理磁盘,Nice!
前端·后端·github
Highcharts.js8 小时前
可视化商用图表库对比,如何选择?
前端·javascript·学习·信息可视化·highcharts·前端可视化
‎ദ്ദിᵔ.˛.ᵔ₎9 小时前
linux 进程间通信
linux·网络