第一章浏览器生成消息

概览总结

  1. 在浏览器中输入要访问的网址,http://www.baidu.com
  2. 浏览器解析网址
  3. 浏览器根据网址的含义生成请求信息(解决发什么)
  4. 浏览器向DNS服务器查询域名对应的IP地址(解决门牌号)
  5. 浏览器将消息委托给操作系统发给web服务器(发送消息)

生成HTTP请求

输入网址

这里我们以 https://cn.bing.com/?mkt=zh-CN 为例

解析url

通过一些标志来将url解析,如//后接服务器名,/表示目录,?表示参数
将url解析成

http://web服务器名/目录名/目录名/文件名?参数键=值

我们的例子表达了参照https协议,主机名为 cn.bing.com, 地区为中国或者说语言为中文。(应该还有一个默认的文件名,一般为index.html或者default.html)

根据网址的含义生成请求信息

请求信息里面包括:“对什么”、“进行怎样的操作”
通过解析浏览器确定了web服务器和文件名,这就是“对什么”。而“进行怎样的操作”是根据浏览器的工作状态。如果是从浏览器的顶部地址栏输入网址是Get方法,点击超链接也是Get方法,点击登陆按钮是Post方法(一般来说),等等。不同的场景进行不同的工作,使用不同的方法。
然后我们就可以撰写请求信息了

<方法>	<URI>	<HTTP版本>············请求行
<字段名>:<字段值>······················消息头
<空行>
<消息体>

向DNS服务器查询IP地址

socket库提供查询IP地址的功能

提供域名解析的是DNS服务器。
跟浏览器和web服务器之间的通信一样,DNS客户端将域名发送给DNS服务器,然后服务器返回解析的IP地址。
那么DNS客户端在哪里呢?它其实是一段程序,包含在操作系统的Socket库中,它又称解析器。

浏览器将消息委托给操作系统

应用程序本身并不能利用网络链接发送数据,所以应用程序需要将信息委托给操作系统,操作系统通过协议栈(网络控制软件)来控制网卡,从而发送数据。

其他小知识

HTTP与TCP/IP

(P10)HTTP的基本思路
HTTP定义了客户端和服务器之间交互的信息内容和步骤,基本思路是客户端向服务器发送请求消息,web服务器返回响应消息的结果。
(P25)TCP/IP的基本思路
局域网是基于TCP/IP的思路来设计的。
基本思路是由一些小的子网通过路由器链接起来组成一个大的网络。

IP地址

猜你喜欢

转载自blog.csdn.net/tinpo_123/article/details/83416844