Web后台,逻辑的背后,服务器被用户访问时是一个怎么样的过程( 二 )



1.2.3.4 google.com
如果该文件内有对应请求域名的条目,就直接等待对应的 IP 地址的服务器响应了,如果没有,则去查询 DNS,通常这个 DNS 是运营商分配给你的,或是一些公共的 DNS 服务器,比如 8.8.8.8 或 114.114.114.114 ,或者你自己建的 DNS 服务器。
DNS 服务器是干什么的? 这个你自己去谷歌吧!我不想多废话了。我们可以通过dig 或nsllokup等命令去查询对应域名等解析:

? ~ dig www.google.com; \u0026lt;\u0026lt;\u0026gt;\u0026gt; DiG 9.9.7-P3 \u0026lt;\u0026lt;\u0026gt;\u0026gt; www.google.com;; global options: +cmd;; Got answer:;; -\u0026gt;\u0026gt;HEADER\u0026lt;\u0026lt;- opcode: QUERY, status: NOERROR, id: 42296;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096;; QUESTION SECTION:;www.google.com.\t\t\tIN\tA;; ANSWER SECTION:www.google.com.\t\t158\tIN\tA\t173.37.12.101;; Query time: 286 msec;; SERVER: 127.0.0.1#53(127.0.0.1);; WHEN: Sun Dec 24 18:15:20 CST 2017;; MSG SIZE rcvd: 59

查询到 IP地址地址后,浏览器就会与服务器的 80 或443端口握手并建立 TCP 连接然后返回客户端数据,浏览器对返回对数据进行解析,通常是 html 代码或 css js等内容进行处理渲染后显示在页面就是你看到的页面了,浏览器还会根据服务端 web服务的设置对请求协议进行调整,比如你发起请求时是请求的:

http://www.google.com.hk
服务端设置了规则对 HTTP 请求进行强制跳转到 HTTPS,则客户端发起302 跳转到 HTTPS。

协议
上面提到了很多协议,比如 HTTP HTTPS TCP,每一个协议都工作在不同都层级,做不同都事情,对于 HTTP 或 HTTPS 协议,建议你阅读 《HTTP 权威指南》 对于 TCP 建议阅读 《TCP/IP 详解 》

■网友
每个用户一个副本。。。。。。这是什么说法,每个用户拿到的东西其实都是一样的,毕竟最初的都GET请求,针对每一个用户,怎么样区分,其实确实有挺多种方法,归纳起来无非也就是通过一段特定的特征码,标志一个用户,服务器识别特定的特征码来区分特定的用户。


推荐阅读