网页显示全过程实录

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

<b>我们先来一个简单版的解答</b>

  • 输入网址, 回车后, 你的浏览器知道你要请求 www.sina.com.cn 这个网页, 于是便把你的这个请求, 按照约定的格式封装成一个数据包, 通过网络去告诉了远端的服务器.
  • 服务器接收到了这个请求, 七转八折告诉了PHP, PHP根据请求的不同, 输出了不同内容, 再同样按照约定的格式封装成一个数据包, 通过网络给到了浏览器.
  • 浏览器接收到这些内容, 解析出来, 网页就显示出来啦.

<b>嗯, 还有几个问题?</b>

  • 问: 我输入了一个网址, 知道发到哪个服务器去?
    答: 每一个域名, 都可以解析出来一个IP, 这个过程叫DNS解析. 在浏览器输入网址后, 其实浏览器先去DNS服务器问了这个域名的IP, 然后再发包. (IP就像门牌号, 可以定位到服务器)

  • 问: 我们经常说 Web服务要80端口, 是个什么东东?
    答:

端口可以理解成家里的门. 两台机器通信, 需要互相打开一扇门, 然后通过门来传递信息.

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

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

> 聪明的菜菜有木有发现, 服务器开了一扇门: 80端口, 为了通信, 浏览器所在的机器是不是也应该开一扇门才能互相传递信息呀. 

其实浏览器已经偷偷开了, 他开了一个1024-65534的随机端口来通信.

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

<div align = "center"><< 目录 >></div>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ** 我们在浏览器地址栏, 输入了 www.sina.com.cn 后回车, 网页就显示出来了. 那具体它为什么会...
    菜菜学编程阅读 465评论 0 1
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,645评论 2 56
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • emily_sky阅读 520评论 2 0
  • 好久没有来这里了,个人觉得还是该多来,最近太闲导致小心思泛滥,我该控制住自己了。 高铁上遇到一对情侣,男生是我喜欢...