第一章总结

第一章 Web浏览器

学习第一章知识之前,仍然得第一章在整个体系中的位置以及第一章的整体内容了解一下。
在这里插入图片描述

  • 我们将首先探索浏览器的工作方式。大家可以认为我们的探索之旅是从在浏览器中输入网址(URL)开始的。例如,当我们输入下面这样的网址
    时,浏览器就会按照一定的规则去分析这个网址的含义,然后根据其含义
    生成请求消息。
    http://www.lab.glasscom.com/sample1.html
    在上面这个例子中,浏览器生成的请求消息表示“请给我 sample1.
    html 这一文件中储存的网页数据”,接着浏览器会将请求消息发送给 Web
    服务器。
    当然,浏览器并不会亲自负责数据的传送。传送消息是搬运数字信息
    的机制负责的工作,因此浏览器会委托它将数据发送出去。具体来说,就
    是委托操作系统中的网络控制软件将消息发送给服务器。第 1 章中,我们
    会探索到浏览器将数据委托出去为止。

Go head

具体来说,浏览器有这几个操作:

  1. 用户从浏览器输入网址,浏览器需要讲用户输入的网址以及进行的操作转化为HTTP报文(请求信息)传递给服务器。
  2. 浏览器会委托操作系统向Web服务器发送请求,但是它需要告诉操作系统接收方IP地址。因此浏览器必须通过DNS服务器查询域名对应的IP地址。
  3. DNS服务器的接力环节。
  4. 查询到IP地址后,委托操作系统发送请求给Web服务器。

URL

正常的URL

在这里插入图片描述

在这里插入图片描述
省略文件名的情况:

(a)http://www.lab.glasscom.com/dir/
我们可以这样理解,以“/”结尾代表 /dir/ 后面本来应该有的文件名被
省略了。根据 URL 的规则,文件名可以像前面这样省略。
不过,没有文件名,服务器怎么知道要访问哪个文件呢?其实,我们
会在服务器上事先设置好文件名省略时要访问的默认文件名。这个设置根
据服务器不同而不同,大多数情况下是 index.html 或者 default.htm 之类的
文件名。因此,像前面这样省略文件名时,服务器就会访问 /dir/index.html
或者 /dir/default.htm。

这样就是访问某路径下的默认文件

(b)http://www.lab.glasscom.com/
这个 URL 也是以“/”结尾的,也就是说它表示访问一个名叫“/”的
目录 A。而且,由于省略了文件名,所以结果就是访问 /index.html 或者
/default.htm 这样的文件了。

/表示根目录

(c)http://www.lab.glasscom.com
这次连结尾的“/”都省略了。像这样连目录名都省略时,真不知道到
底在请求哪个文件了,实在有些过分。不过,这种写法也是允许的。当没
有路径名时,就代表访问根目录下事先设置的默认文件 A,也就是 /index.
html 或者 /default.htm 这些文件,这样就不会发生混乱了。
(我们访问某些网站首页时就是这样:就是因为它们设置了默认文件为我们看到的首页)

(d)http://www.lab.glasscom.com/whatisthis
前面这个例子中,由于末尾没有“/”,所以 whatisthis 应该理解为文件
名才对。但实际上,很多人并没有正确理解省略文件名的规则,经常会把
目录末尾的“/”也给省略了。因此,或许我们不应该总是将 whatisthis 作
为文件名来处理。一般来说,这种情况会按照下面的惯例进行处理:如果
Web 服务器上存在名为 whatisthis 的文件,则将 whatisthis 作为文件名来处
理;如果存在名为 whatisthis 的目录,则将 whatisthis 作为目录名来处理 B。

a. http://www.nikkeibp.co.jp/sample
sample表示文件名

b. http://www.nikkeibp.co.jp/sample/
sample表示路径名

HTTP

HTTP 协议定义了客户端和服务器之间交互的消息内容和步骤,其基本思路非常简单。首先,客户端会向服务器发送请求消息请求。

消息中包含的内容是==“对什么”“进行怎样的操作”==两个部分。

  • 其中相当于“对什么”的部分称为 URIA。一般来说,URI 的内容是一个存放网页数据的文件名或者是一个 CGI 程序 B 的文件名,例如“/dir1/file1.html” “/dir1/program1.cgi”等 C。不过,URI 不仅限于此,也可以直接使用“http:”开头的 URLD 来作为 URI。换句话说就是,这里可以写各种访问目标,而这些访问目标统称为 URI。
  • 相当于接下来“进行怎样的操作”的部分称为方法 E。方法表示需要让
    Web 服务器完成怎样的工作,其中典型的例子包括读取 URI 表示的数据、
    将客户端输入的数据发送给 URI 表示的程序等。表 1.1 列举了主要的方法,
    通过这张表大家应该能够理解通过方法可以执行怎样的操作。

在这里插入图片描述
HTTP中的响应信息开头头有一个状态码,
它用来表示操作的执行结果是成功还是发生了错误。当我们访问 Web 服务器时,遇到找不到的文件就会显示出 404 Not Found 的错误信息,其实这就是状态码。

Web服务器本质是其实可以作为一个原创文件服务器来用。

生成 HTTP 消息之后,接下来我们需要委托操作系统将消息发送给Web 服务器。尽管浏览器能够解析网址并生成 HTTP 消息,但它本身并不具备将消息发送到网络中的功能,

在委托操作系统发送消息时,必须要提供的不是通信对象的域名,而是它的 IP 地址。

为什么用域名在浏览器上,而不是IP地址,因为域名好记。

那么为什么不直接用域名作为地址传输,地位域名所含信息太多,而IP地址只有32比特。

根据域名查询 IP 地址时,浏览器会使用 Socket 库中的解析器。

那就是将根域的 DNS 服务器信息保
存在互联网中所有的 DNS 服务器中。这样一来,任何 DNS 服务器就都可以找到并访问根域 DNS 服务器了。因此,客户端只要能够找到任意一台DNS 服务器,就可以通过它找到根域 DNS 服务器,然后再一路顺藤摸瓜
找到位于下层的某台目标 DNS 服务器。

分配给根域 DNS 服务器的 IP 地址在全世界仅有 13 个 A,而且这些地址几乎不发生变化,因此将这些地址保存在所有的 DNS 服务器中也并不是一件难事。实际上,根域DNS 服务器的相关信息已经包含在 DNS 服务器程序的配置文件中了,因此只要安装了 DNS 服务器程序,这些信息也就被自动配置好了。

如果说描述符是用来在一台计算机内部识别套接字的
机制,那么端口号就是用来让通信的另一方能够识别出套接字的机制 。

描述符:应用程序用来识别套接字的机制
IP 地址和端口号:客户端和服务器之间用来识别对方套接字的机 IP 地址和端口号:客户端和服务器之间用来识别对方套接字的机制

                                                 以上内容摘抄自《网络是怎么连接的》一书
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值