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

网页显示全过程实录

作者: 菜菜学编程 | 来源:发表于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的随机端口来通信.

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

相关文章

  • 菜菜学编程 - PHP

    PHP可以做什么 [如何用PHP做Web]2.1 网页显示全过程实录2.2 轻度解释 Http 协议 2...

  • 网页显示全过程实录

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

  • 网页显示全过程实录

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

  • 菜菜学PHP -- 目录

    1. 学PHP可以做什么 2. 如何用PHP做Web 2.1 网页显示全过程实录 2.2 轻度解释 Http ...

  • iOS实录17:网络图片的优化显示

    iOS实录17:网络图片的优化显示 iOS实录17:网络图片的优化显示

  • 第八节 特效、选择器、过滤器

    1、特效 网页显示: 2 、基本选择器 3、层级选择器 网页显示: 4、筛选器 网页显示: 5、筛选器(conta...

  • 第九节 属性选择器、表单选择器

    1、属性选择器 网页显示: 2、表单选择器 网页显示: 3、操作css属性 网页显示: 4、操作属性 attr、r...

  • 2018-11-28

    浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)

  • JS篇

    打开网页让网页显示某个内容: alert("hello world"); 打开网页显示对话框可以输入内容: pro...

  • springboot 网页显示

    java 使用比较多的页面是jsp 页面 内置九大对象使用起来非常方便,但是维护起来和不懂的人使用起来便是一种灾难...

网友评论

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

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