《图解HTTP》读书笔记(第一章)

产生

  • HTTP/1.0标准公布于1996年5月,并记载于RFC1945;
  • HTTP/1.1 是目前主流的标准,记载于RFC2616。
    新一代HTTP/2.0正在制定当中,但要达到较高的使用覆盖率,仍需假以时日。

网络基础TCP/IP

TCP/IP 协议族

TCP/IP 协议族是互联网相关联的协议的集合。从电缆的规格到IP地址的选定方法、寻找异地用户的方法、双方建立通信的顺序,以及Web页面显示需要处理的步骤,等等。而HTTP是属于它内部的一个子集。

TCP/IP的分层管理

TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层。 分层的好处:把各层之间的接口部分规划好之后,每个层次内部的设计就能够自由改动了。而且,层次化之后,设计也变得相对简单。处于应用层上的应用可以只考虑分派给自己的任务,而无需弄清对方在地球上哪个地方、对方的传输路线、是否能确保传输送达等问题。
  • 应用层:决定了向用户提供应用服务时通信的活动。 TCP/IP 协议族预存了各类通用的应用服务。如 FTP(File Transfer Protocol)、DNS(Domain Name System)和 HTTP
  • 传输层:该层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。TCP(Transmission Control Protocol)和 UDP(User Data Protocol,用户数据报协议)。
  • 网络层:网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎么样的路径到达对方计算机,并把数据包传送给对方。
  • 链路层:用来处理网络的硬件部分

TCP/IP 通信传输流

利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层往上走。

HTTP 举例来说:首先作为发送端的客户端在应用层(HTTP协议)发出一个HTTP请求。
接着,在传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文)进行分隔,并在各个报文上打上标记序号及端口号后转发给网络层。
在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。这就让发往网络的通信请求准备齐全了。
接收端的服务器在链路层接收到数据后,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到客户端发送过来的HTTP请求。

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。 把数据信息包装起来的做法称为封装

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

负责传输的 IP 协议

IP(网际协议)位于网络层。该协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中最重要的两个条件是 IP 地址和 MAC地址。 IP 地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。

使用ARP协议凭借MAC地址进行通信 IP间通信通信依赖MAC地址。通信的双方通常会经过多台计算机和网络设备中转才能连接到对方,而在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标。这时,会采用ARP协议。该协议是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。

确保可靠性的TCP协议

TCP属于传输层,提供可靠的字节流服务。 字节流服务是指:为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。 这就是为什么下载高清大图时,图片会一块一块地加载。

三次握手为了准确无误地将数据送达目标处,TCP协议在发送数据的准备阶段采用了三次握手策略(若在握手过程中某个阶段中断,TCP协议会再次以相同的顺序发送相同的数据包)。

当然,除了三次握手,TCP还有其它各种手段确保通信的可靠性。

负责域名解析的 DNS 服务

DNS服务提供域名到IP 地址之间的解析服务。 即可通过域名查找IP,或逆向从IP地址反查域名服务。

URI和URL

URI(uniform Resource Identifier) Uniform:规定统一的格式可方便处理多种不同类型的资源。 Resource:可标识的任何东西 Identifier:标识符

URI就是某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称,如httpftp

URI 用字符串标识某一个互联网资源,而URL表示资源的地点。URLURI的子集。

关于URI和URL:

URI 定义了一个抽象的统一资源的表示规则,URL 是 URL 针对已经存在的协议的一种具体应用.
同时补充一点的是,URN 定义了 URI 中的各个元素的命名规则。

理解URI和URL的区别,我们引入URN这个概念。
URI = Universal Resource Identifier 统一资源标志符
URL = Universal Resource Locator 统一资源定位符
URN = Universal Resource Name 统一资源名称

这三者的关系如下图:
《图解HTTP》读书笔记(第一章)_第1张图片

也就是说,URI分为三种,URL or URN or (URL and URI
URL代表资源的路径地址,而URI代表资源的名称。

表示指定的URI,要使用涵盖全部必要信息的绝对URI、绝对URL以及相对URL。相对URL是指从浏览器中基本URI处指定的URL,如 /image/logo.gif

绝对URI的格式如下:

你可能感兴趣的:(计算机网络)