美文网首页
通过 《HTTP 图解 》一书来认识HTTP(一)

通过 《HTTP 图解 》一书来认识HTTP(一)

作者: BlackStar暗星 | 来源:发表于2021-03-08 19:03 被阅读0次

如果和我一样,对网络毫无概念,并且想去了解HTTP,建议看下HTTP图解这一本书,很不错,包含大量的图画帮助我们理解HTTP,不会那么枯燥,讲的很清晰。非常棒的一本书


本篇笔记大部分使用此书原文和原图,提取了个人觉得比较重要的知识点,供后期自己回顾学习使用

专业词

  • HTTP:HyperText Transfer Protocol 超文本传输协议(原名:超文本转移协议)

  • 客户端 :通过发送请求获取服务器资源的 Web 浏览器、手机APP等,都可称为 客户端( client)。

  • 服务器:服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务

  • TCP/IP 协议簇:大部分网络协议 合集 的总称,如 tcp、ip、udp、http、ftp 等等

  • DNS : Domain Name System,计算机既可以被赋予 IP 地址,也可以被赋予主机名和域名。比如 www.hackr.jp
    用户通常使用主机名或域名来访问对方的计算机,而不是直接通过 IP 地址访问。因为与 IP 地址的一组纯数字相比,用字母配合数字的表 示形式来指定计算机名更符合人类的记忆习惯。
    但要让计算机去理解名称,相对而言就变得困难了。因为计算机更 擅长处理一长串数字。
    为了解决上述的问题,DNS 服务应运而生。DNS 协议提供通过域 名查找 IP 地址,或逆向从 IP 地址反查域名的服务。

  • RFC : Request for Comments,有一些用来制定 HTTP 协议技术标准的文档,它们被称为 RFC

  • URL:Uniform Resource Locator,统一资源定位符

  • URI:Uniform Resource Identifier

URL 与 URI:
URI 用字符串标识某一互联网资源,而 URL 表示资源的地点(互 联网上所处的位置)。可见 URL 是 URI 的子集。
比如说一个人的身份证号可以代表一个人,我们可以吧这个身份证号看作是URI,但是身份证号并没有你的位置。URL就不同了,URL可能表现为:北京/海淀/xxx小区/1号楼/1单元/101/姓名:xxx。

一般应用

浏览器输入网址:如 http://www.baidu.com

image.png

最初设想的基本理念是:借助多文档之间相互关联形成的超文本 (HyperText),连成可相互参阅的 WWW(World Wide Web,万维网)。

现在已提出了 3 项 WWW 构建技术,分别是:

  • 把 SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文本标 记语言的 HTML(HyperText Markup Language,超文本标记语言);
  • 作为文档传递协议的 HTTP ;
  • 指定文档所在地址的 URL(Uniform Resource Locator,统一资源定位符)。

WWW 这一名称,是 Web 浏览器当年用来浏览超文本的客户端应 用程序时的名称。现在则用来表示这一系列的集合,也可简称为 Web。

网络基础 TCP/IP

计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间 的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议
( protocol)。

image.png

协议中存在各式各样的内容。从电缆的规格到 IP 地址的选定方法、 寻找异地用户的方法、双方建立通信的顺序,以及 Web 页面显示需要 处理的步骤,等等。
像这样把与互联网相关联的协议集合起来总称为 TCP/IP。也有说 法认为,TCP/IP 是指 TCP 和 IP 这两种协议。还有一种说法认为,TCP/ IP 是在 IP 协议的通信过程中,使用到的协议族的统称。

TCP/IP 的分层管理

  • 应用层:

    • 应用层决定了向用户提供应用服务时通信的活动。
      TCP/IP 协议族内预存了各类通用的应用服务。比如,FTP(File Transfer Protocol,文件传输协议)和 DNS(Domain Name System, 域名系统)服务就是其中两类。
      HTTP 协议也处于该层。
  • 传输层

    • 传输层对上层应用层,提供处于网络连接中的两台计算机之间的 数据传输。 在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Data Protocol,用户数据 报协议)。
  • 网络层

    • 网络层用来处理在网络上流动的数据包。数据包是网络传输的最小 数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对 方计算机,并把数据包传送给对方。 与对方计算机之间通过多台计算机或网络设备进行传输时,网络层 所起的作用就是在众多的选项内选择一条传输路线。
  • 数据链路层

    • 用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱 动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴 均在链路层的作用范围之内。

通信

image.png image.png

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

TCP三次握手:
为了准确无误地将数据送达目标处,TCP 协议采用了三次握手 (three-way handshaking)策略。用 TCP 协议把数据包送出去后,TCP 不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握 手过程中使用了 TCP 的标志(flag)——SYN(synchronize)和 ACK
( acknowledgement)。
发送端首先发送一个带 SYN 标志的数据包给对方。接收端收到后,
回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。最后,发送 端再回传一个带 ACK 标志的数据包,代表“握手”结束。
若在握手过程中某个阶段莫名中断,TCP 协议会再次以相同的顺序 发送相同的数据包。

image.png

概括通信过程

image.png

相关文章

网友评论

      本文标题:通过 《HTTP 图解 》一书来认识HTTP(一)

      本文链接:https://www.haomeiwen.com/subject/ktqmqltx.html