示意图
处理流程
处理过程解析
输入 URL
URI:Uniform Resource Identifier,统一资源标识符,用字符串标识某一互联网资源。
URL:Uniform Resource Locator,统一资源定位符,URL 是 URI 的子集,也就是我们通常使用的网页地址。
1 | # HTTP URL格式 |
DNS 域名解析
功能:简单的说就是把域名翻译成 IP 地址,基本过程如下:
1 | ➜ hexo dig +cmd +trace www.baidu.com |
- DNS 根域名服务器(13台):.
- DNS 主域名服务器(13台):com.
- 管理方 DNS 服务器:baidu.com.
举个例子,你想知道某个一起上法律课的女孩的电话,并且你偷偷拍了她的照片,回到寝室告诉一个很仗义的哥们儿,这个哥们儿二话没说,拍着胸脯告诉你,甭急,我替你查(此处完成了一次递归查询,即,问询者的角色更替)。然后他拿着照片问了学院大四学长,学长告诉他,这姑娘是xx系的;然后这哥们儿马不停蹄又问了xx系的办公室主任助理同学,助理同学说是xx系yy班的,然后很仗义的哥们儿去xx系yy班的班长那里取到了该女孩儿电话(此处完成若干次迭代查询,即,问询者角色不变,但反复更替问询对象)。最后,他把号码交到了你手里,完成整个查询过程。
建立 TCP 连接
拿到域名对应的 IP 地址后,浏览器会以一个随机端口(1024 < 端口 < 65535)向服务器的 WEB 程序发起 TCP 的连接请求。
三次握手:
- Client 首先发送一个连接试探
- Server 监听到连接请求报文后,如同意建立连接,则向 Client 发送确认
- Client 收到确认后还需再次发送确认,同时携带要发送给 Server 的数据
抓包
发送 HTTP 请求
HTTP 协议
服务器处理 HTTP 请求
服务器在接收到请求后,解析用户请求,知道要调度哪些资源文件,再通过相应的资源文件处理用户的请求和参数,并调用数据库,将结果通过 web 服务器返回给浏览器。
Nginx
关闭 TCP 连接
数据传输完成后,为了避免服务器与客户端双方的资源占用和损耗,会经过四次挥手,关闭 TCP 连接。