乐趣区

图解HTTP-读书分享一

第一章 了解 web 及网络基础

1.1 使用 HTTP 访问 web

1.2 HTTP 的诞生

1.3 网络基础 TCP/IP

  • TCP/IP 协议族
  • 通常使用的网络实在 TCP/IP 协议族的基础上运行的。而 HTTP 属于内部的一个子集。
1.3.1 TCP/IP 协议族
  • 协议:计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由那一边发起通信、使用哪种语言进行通信、怎样结束通信等。不同硬件、不同操作系统之间的通信,都必须遵循一种规则,这种规则就是协议
  • TCP/IP 是互联网相关的各类协议族的总称
  • 包括协议:TCP,IP,HTTP,FTP,UDP,DNS 等
1.3.2 TCP/IP 的分层管理
  • 分四层:应用层、传输层、网络层、数据链路层
  • 分层优点:
  1. 可使各层之间相互独立,某一层可以使用其下层提供的服务而不需要知道服务是如何实现的
  2. 灵活性好,当某一层发生改变时,只要其接口关系不变,则这层以上或以下的应用都不会受到影响
  3. 结构上解耦,各层可以选择最合适的技术来实现
  4. 易于实现和维护,因为可以分层次的调试,快捷方便
  5. 能促进标准化工作,创造更好的互联环境
  • 应用层

作用:应用层决定了向用户提供应用服务时的通信的活动。
包括:FTP(文件传输协议)、DNS(域名系统)、HTTP(超文本传输协议)
HTTP 协议就处在应用层

  • 传输层

作用:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输
包括:TCP(传输控制协议)、UDP(用户数据报协议)

  • 网络层(or 网络互联层)

作用:网络层用来处理在网络上流动的数据包,该层规定了通过怎样的路径 (传输线路) 到达对方计算机,并将数据包传送给对方。

  • 链路层(or 数据链路层 or 网络接口层)

作用:用来处理网络的硬件部分,包括操作系统、硬件的设备驱动、网卡、光纤等物理可见部分。

1.3.3 TCP/IP 通信传输流

  • 利用 TCP/IP 协议族进行网络通信,会通过分层顺序与对方进行通信
  • 发送端从应用层往下走,接收端从网络层往上走
  • 流程
  1. 首先,作为发送端的客户端在 应用层 (HTTP 协议) 发送一个 HTTP 请求
  2. 为了传输方便,在 传输层 (TCP 协议) 把从应用层接收到的数据 (HTTP 请求报文) 进行分割,并在各个报文上打上标记序号及端口号,然后转发到网络层
  3. 网络层(IP 协议),增加作为通信目的地的 Mac 地址后,转发给链路层。在此,发送网络的通信请求就准备齐全了
  4. 接收端的服务器在链路层接收到数据,按序往上层发送,一直到服务器的应用层。
  • 发送端在层与层之间传输数据时,每经过一层时必定会打上一个该层所属的头部信息;反之,接收端在曾与层之间传输数据时,每经过一层时会把相应的头部去掉。
  • 封装:把数据信息包装起来的方式成为封装

1.4 与 HTTP 关系密切的协议:IP、TCP、DNS

1.4.1 负责传输的 IP 协议
  • IP 协议位于 网络层
  • TCP/IP 中的 IP 是指国际协议,注意与 IP 地址区分开
  • IP 协议作用:把各种数据包传送给对方,确保数据传输,最重要的 两个条件是 IP 地址和 MAC 地址,IP 地址指明了节点被分配到的地址,Mac 地址是指网卡所属的固定地址。IP 地址和 Mac 地址可进行配对。IP 地址可更改,Mac 地址不可更改
  • 通信在进行中转时,会采用 ARP 协议,利用下一站中转设备的 Mac 地址来搜索下一个中转目标。ARP 协议是一种解析地址的协议, 根据通信方的 IP 地址反查出对应的 Mac 地址
  • 在到达通讯目标前的中转过程中, 需要进行路由的选择。路由就像快递的货物集散地,分发网络请求
1.4.2 确保可靠性的 TCP 协议
  • TCP 协议位于 传输层,提供可靠的字节流服务
  • 字节流服务:将大块数据分割,以报文段为单位的数据包进行管理
  • 为了确保数据传输到目标,TCP 协议采取了三次握手策略。
  • 简单的三次握手流程:
    1. 发送端首先 发送一个带 SYN 标志的数据包给对方
    1. 接收端收到后,回传一个带有 SYN/ACK 标志的数据包,以示传达确认信息
    1. 发送端在回传一个带 ACK 标志的数据包,表示握手结束
1.4.3 负责域名解析的 DNS 服务
  • DNS 协议位于应用层
  • 作用:提供 IP 地址与域名之间的解析服务。

1.5 各种协议与 HTTP 协议的关系

1.6 URI 和 URL

  • URI 统一资源标识符
  • URL 统一资源定位符,URL 就是常见的网页地址
1.6.1 统一资源标识符
  • URI 用字符串标识某一互联网资源,URL 表示资源的地点
  • URL 是 URI 的 子集
  • URI 例子:

ftp://ftp.is.co.za/rfc/rfc.txt
http://www.baidu.com/

1.6.2 URI 格式

  • 协议名:HTTP,HTTPS,FTP 等类型
  • 登录信息(认证)

指定用户名和密码作为从服务器端资源时必要的登录信息,可选

  • 服务器地址

服务器地址可以是 www.baidu.com 的域名,也可以是 192.168.1.1 的 IPv4 地址,也可以是 IPv6 地址

  • 服务器端口号
  • 带层次的文件路径
  • 查询字符串
  • 片段标识符
退出移动版