网络是怎样连接的(一)——浏览器生成消息

1.1 探索之旅从输入网址开始

  • 浏览器做的第一步是解析URL,从而生成发送给Web服务器的请求消息
  • 请求消息=URI+方法(对什么+进行怎样的操作),方法主要为GET和POST
  • 请求消息格式:
    1. 请求行:<方法><空格><空格><HTTP版本>
    2. 消息头:用于表示请求的附加信息,日期、压缩格式、版本等
    3. 消息体:包含客户端向服务器发送的数据,如POST向服务器发送的表单信息,GET方法不需填写消息体
  • 相应消息格式
    1. 状态行:<HTTP版本><空格><状态码><空格><响应短语>
    2. 消息头:同上
    3. 消息体:包含服务器向客户端发送的数据
  • 状态码:
    • 1XX: 告知请求的处理进度和情况
    • 2XX: 成功
    • 3XX: 表示需要进一步操作
    • 4XX: 客户端错误
    • 5XX: 服务器错误
  • 1条请求消息中只能写1个URI。若需获取多个文件,必须对每个文件单独发送一条请求

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

  • 在生成HTTP消息后,下一个步骤就是根据域名查询IP地址。浏览器能解析网址并生成HTTP消息,但将消息发送到网络中的功能需要委托操作系统来实现
  • IP地址32比特:网络号+主机号,二者分配位数可自行决定,需要附加信息(子网掩码)来表示IP地址内部结构。(网络号相当于快递点,主机号相当于货架号)
  • 主机号部分全为0,表示的不是单独一台计算机,而是整个子网;主机号部分全部为1则表示对整个子网进行广播
  • DNS客户端部分称为DNS解析器,包含在操作系统的Socket库中。Socket库是调用网络功能的程序组件的集合
  • 取得IP地址后,将其与HTTP请求消息一同交给操作系统

1.3 DNS查询过程

  • 在域名中,越靠右的位置表示其层级越高
  • 一个域的信息作为一个整体存放在DNS服务器中,不能将一个域拆开存放在多台DNS服务器中
  • com、cn等顶级域上面还有一级域,称为根域,根域的DNS服务器信息保存在互联网中所有的DNS服务器中
  • DNS查询过程:客户端找到任意一台DNS服务器,通过它找到根域DNS服务器,再依次查询下层的某台目标DNS服务器直到找到最终目标
  • 可以通过DNS缓存加快DNS服务器的响应

1.4 委托协议栈发送消息

  • 知道IP地址后,就可以委托操作系统内部的协议栈向这个目标IP发送消息了。这需要按照指定顺序调用Socket库中的程序组件
  • 应用程序通过描述符来标识套接字;描述符是用来在一台计算机内部标识套接字的机制,端口号是用来让通信的另一方能够识别出套接字的机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值