美文网首页
网页显示全过程实录

网页显示全过程实录

作者: 菜菜学编程 | 来源:发表于2016-03-25 16:01 被阅读0次

    ** 我们在浏览器地址栏, 输入了 www.sina.com.cn 后回车, 网页就显示出来了. 那具体它为什么会显示出来的? **

    我们先来一个简单版的解答
    输入网址, 回车后:

    1. 你的浏览器知道你要请求 www.sina.com.cn 这个网页
    1. 浏览器把你的这个请求, 按照约定的格式封装成一个数据包
    2. 浏览器把数据包通过网络发给了服务器.
    3. 服务器接收到了这个包, 七转八折告诉了服务器上运行的PHP程序
    4. PHP程序运行后, 再按照之前约定的格式封装成数据包, 通过网络给到了浏览器.
    5. 浏览器接收到这些数据, 解析出来, 网页就显示出来啦.

    嗯, 再问几个问题?

    我输入了一个网址, 浏览器如何知道发到哪个服务器去?

    每一个域名, 都可以解析出来一个IP, 这个过程叫DNS解析.

    在浏览器输入网址后, 其实浏览器先去DNS服务器问了这个域名的IP, 然后再发包. (IP就像门牌号, 可以定位到服务器)

    BTW, 这时候如果查询到的 IP 出错了, 请求就发到别的服务器去啦. 想想看, 这种情况是不是很危险? 万一别的服务器回了一个依然可用的页面, 浏览网页的人不知道, 输入了用户名密码, 信息就会被盗取了.

    怎么防止这种情况呢? 我们后面会专门抽出一个章节, 关于网络安全, 来讲这部分.

    ** 我们经常说 Web服务要开80端口, 是个什么东东? **

    服务器理解成房子, 端口就可以理解成家里的门.

    两台机器通信, 需要互相打开一扇门, 然后通过门来传递信息.

    服务器上有防火墙, 可以关掉所有门. 如果你的服务器提供 Web服务, 就打开80这扇门. 打开后, 浏览器发送数据到你服务器的这扇门(80端口), 完成正常通信.

    当然, 80不是一定的, 你也可以在服务器开启81, 82, 8080等端口来提供Web服务. 而这个时候你输入的网址就必须是 xxx.com:81 yyy:com:82 zzz.com:8080 才能正常访问.
    如果开启的是80就不必加后面的[:端口]的部分啦, 当然加上也没问题. 对于浏览器而言 xxx.com:80 等于 xxx.com

    聪明的菜菜同学有木有发现, 服务器开了一扇门: 80端口, 为了通信, 浏览器是不是也应该开门呢? 其实浏览器已经偷偷开了, 他本地开了一个1024-65534的随机端口来通信.

    关于这部分的网络通信细节, 说来话长, 总之先有这样一个概念在就好啦.

    相关文章

      网友评论

          本文标题:网页显示全过程实录

          本文链接:https://www.haomeiwen.com/subject/sdfdlttx.html