输入 URL 按下 enter 键后浏览器和服务器各自发生的事.
浏览器
1. 用户在浏览器中输入 URL 地址
2. 浏览器解析用户输入的 URL 地址 =》域名 + 端口
3. 浏览器检查本地缓存中是否存在这个域名 =》IP
4. 没有的话发起一个 DNS 系统调用 =>IP(已经找到 IP)
4.1 DNS 系统调用
4.1.1 检查操作系统有没有这个域名
4.1.2 检查 hosts 文件中有没有这个域名
4.1.3 发起一个 DNS 调用直至找到这个域名 =》IP
5. 浏览器会通过本地一个随机创立的端口和服务器端指定端口之间进行一个连接
6. 浏览器会把客户端的信息打一个包
7 浏览器将这个包通过建立的连接通道发送到服务器
接下来服务器登场, 服务器以 apache 服务器为例
1. 打开客户端发送过来包, 拿到里面的请求路径
2. 根据里面的请求路径对应的拓展名找到文件的 MIME TYTPE 文件类型
3. 判断文件类型是否是静态文件
4. 如果是静态文件直接读取文件的内容
5. 如果不是静态文件就判断什么程序可以处理这个类型的文件, 交给程序进行处理, 程序把处理结果返回服务器端
6. 服务器端把文件打一个包
7. 服务器端通过之前的连接通道把包发回给客户端
接下来又是浏览器对服务器端返回的数据包进行处理
8. 打开服务器端返回来的包, 找到 Content-type
9. 根据 Content-Type 判断处理响应内容的方式
10. 如果是 html 则渲染到页面上
来源: http://www.bubuko.com/infodetail-3324554.html