浏览器生成消息

时间:2023-01-26 14:54:39

这是《网络是怎样连接的》的第1篇读书笔记,内容为第一章《浏览器生成消息》。

浏览器访问网页的故事,从下面三点开始:

1.生成HTTP请求消息

2.调用解析器向DNS服务器查询Web服务器的IP地址

3.委托协议栈收发消息

 

1.生成HTTP请求消息

 

URL的各种格式,详见下图:

浏览器生成消息

 http是最常用的,ftp和file次之,mailto和news已经几乎见不到了。

铆是铆,钉是钉,接下来拆解URL的元素吧! 

浏览器生成消息

 元素的拆解是对知识的整理和重构,同时也为后期的读书作了基础名词声明,先接受这些名词作为后面沟通的基础。

 如果你了解过RESTful,那就知道http的方法,一起温故知新一下。

 浏览器生成消息

 http的状态码,补充在编程中了解的服务器状态。

浏览器生成消息

 

2.向DNS服务器查询Web服务器的IP地址

 

浏览器完成http消息生成后,进入第2步——向DNS服务器查询Web服务器的IP地址。

浏览器调用DNS解析器把域名解析为IP地址:

 浏览器生成消息

DNS服务器的基本工作就是接收来自客户端的查询请求,根据请求的内容返回响应。

客户端的查询请求包含3种信息:

1)域名

服务器、邮件服务器的名称

2)Class

最早设计DNS时候,DNS在互联网以外的其他网络应用也被考虑到,Class就是用来识别网络类型。不过,如今除了互联网并无其他,因此Class的值永远是代表互联网的IN。

3)记录类型

表示域名对应何种类型的记录,当类型为A时,表示域名对应的是IP地址;当类型为MX时,表示域名对应的是邮件服务器。

 浏览器生成消息

DNS服务器中所有消息是按照域名以分层结构保存,比如www.baidu.com,其中的分隔符.代表了不同层次之间的界限,越是靠右的位置表示层级越高。

在互联网中,.com、.cn这些域名还有上一级域,称为根域,往往被人们忽略了,但是确实存在的。根域DNS服务器保存着com、cn等DNS服务器信息,另外,根域服务器信息也保存在所有的DNS服务器中。

浏览器生成消息

 

3.委托协议栈发送消息

浏览器调用解析器获取域名IP地址后,就可以委托操作系统的协议栈向目标IP发送和接收消息了。

使用协议栈收发消息的过程就像是两台计算机之间建立了一条数据通道,数据沿着这条通道涌动,最终流向目标计算机。

浏览器生成消息

收发数据的过程,分为4个阶段:

1)创建套接字(创建套接字阶段)

2)将管道连接到服务器端的套接字上(连接阶段)

3)收发数据(通信阶段)

4)断开管道并删除套接字(断开阶段)

浏览器生成消息

好了,第一章的读书笔记就整理这么多。下面,看看章节最后留下的问题:


  习题

  1. http://www.nikkeibp.co.jp/中的http代表什么意思?

    答:http表示超文本传输协议。

  2. 下面两个网址有什么不同?

    a. http://www.nikkeibp.co.jp/sample

    b. http://www.nikkeibp.co.jp/sample/

    答:a末尾没有"/",按照规则应该理解为sample文件。实际上,如果服务器上存在名为sample的文件,则将sample作为文件名处理;如果存在名为sample的目录,则将sample作为目录名处理。b末尾有"/"表示/sample/后面本来应该有的文件名被省略了,通常我们会在服务器上事先设置好文件名省略时候要访问的默认文件名,如default.html或者index.html之类的文件名。

  3. 用来识别连接在互联网上的计算机和服务器的地址叫什么?

    答:IP地址。

  4. 根据Web服务器的域名来查询IP地址时所使用的服务器叫什么?

    答:DNS服务器。

  5. 向DNS服务器发送请求消息的程序叫什么?

    答:解析器。