HTTP 基本概念

1. 什么是 HTTP?HTTP 的作用是什么?

HTTP 全称:HyperText Transfer Protocol ,超文本传输协议。

HTTP 从客户端到服务器端等一系列运作流程提供规范,是目前互联网上使用的最广泛的一种规范。

  1. HTTP 协议用于客户端和服务器端之间的通信

  2. 通过请求和相应的交换达成通信

  3. HTTP 是一种不保存状态的协议

  4. HTTP 通过使用 URI 来定位互联网的资源

Chat 严选 | HTTP 四十问全解析

2. 什么是 TCP/IP?

  1. 计算机与网络设备通信,须基于一定的方法规范来进行。确定通信对象、通信语言选择、开始结束通信方式、不同操作系统或者硬件之间如何通信,这些都是需要制定的规则协议。

  2. TCP/IP 协议就是由这些多种互联网通信相关协议组合而成,HTTP 为期子集。大部分常用的互联网网络,均通过 TCP/IP 协议族来进行。

  3. TCP/IP 协议族常见的协议还包括:TCP、IP、HTTP、FDDI、FTP、DNS、UDP、SNMP 等。

  4. TCP/IP 也是指 TCP 和 IP 这两种协议,是在 IP 协议的通行过程中,使用到的协议族的统称。

3. TCP/IP 协议族分几层?

TCP/IP 协议族可以分为 4 层,分别是应用层、传输层、网络层和链路层。

1. 应用层:应用服务之间的通信协议规范,如 FTP、DNS 和 HTTP 都在这层。

2. 传输层:传输层对应用层传输两台计算机之间的数据。传输层主要使用以下两种协议:

  • 传输控制协议 TCP(数据传输的单位是报文段)

  • 用户数据报协议 UDP(数据传输的单位是用户数据报),不保证提供交付的可靠性。

3. 网络层:网络层对传输层提供的数据包进行传送。用来处理网络上流动的数据包,使用无连接的网际协议 IP 和许多种路由选择协议。网络层还有另一个任务就是选择合适的路由。

4. 链路层(数据链路层):硬件上的处理均在链路层的范围内。如:操作系统、硬件设备的驱动、网卡等。

Chat 严选 | HTTP 四十问全解析

4. TCP/IP 协议族分层有什么优点?

TCP/IP 协议族分层的优点是:

  1. 改动方便:如果仅使用一个协议,那么当其中的某一部分发生改变的时候,就需要把整体全部替换掉。

  2. 设计简单:使用分层时候,仅需要替换改变的层的内容,只需要把每层之间的接口部分定义规划好,那么各层内部就可以随意改变,更加灵活自由,在设计上也简单很多。

5. TCP/IP 分层与 OSI 分层对比

TCP/IP 协议族按层次分为以下 4 层:应用层、传输层、网络层和数据链路层。

OSI 则分为 7 层:应用层、表示层、会话层、运输层、网络层、数据链路层和物理层。

对应关系如下:

Chat 严选 | HTTP 四十问全解析

6. 什么是 TCP/IP 通信传输流?

通过 TCP/IP 协议通信方式,会遵循分层的顺序与对方进行通信

  • 发送端的顺序是:应用层 -> 传输层 -> 网络层 -> 链路层;

  • 接受端的顺序是:链路层 -> 网络层 -> 传输层 -> 应用层。

Chat 严选 | HTTP 四十问全解析

7. TCP/IP 协议族中的 IP 协议

IP 网际协议处于网络层,用于传送数据包。它通过 IP 地址和 MAC 地址将数据包传送到指定的位置。

其中 IP 地址指明了分配给节点的地址,可变化;MAC 地址指明了所属网卡的固定地址,不可变化。

IP 之间的通信是依赖于 MAC 地址的,在网络通信的过程中,根据 ARP (一种地址解析协议)协议,通过 IP 反查出对应 MAC 地址,再通过 MAC 地址来搜索中转目标。

8. TCP/IP 协议族中的 TCP 协议是什么?

TCP 协议提供可靠的字节流服务,主要是通过采用三次握手的策略来确保传输数据的准确性的。

Chat 严选 | HTTP 四十问全解析

用 TCP 协议将数据包发送之后,它会向对方确认是否成功送达。握手过程中使用了 TCP 的标志(flag)——SYN(synchronize)和 ACK(acknowledgement)。

  1. 发送端 A 发送 SYN 标志的数据包给信息接收方 B。

  2. B 收到后数据包之后,回传 SYN/ACK 标志的数据包,表示确认信息。

  3. 发送端 A 再回传一个 ACK 标志的数据包,代表“握手”结束。

  4. 若在握手过程中某个阶段莫名中断,TCP 协议会再次按照相同顺序发送相同的数据包。

9. 请介绍一下 TCP/IP 协议中的 DNS

DNS 全称为 Domain Name System。

DNS 协议与 HTTP 一样位于应用层,主要负责将域名和 IP 之间的相互解析。

Chat 严选 | HTTP 四十问全解析

10. IP、TCP、DNS 和 HTTP 的关系

Chat 严选 | HTTP 四十问全解析

由于篇幅有限,感兴趣的同学可以扫描下方二维码继续阅读:

Chat 严选 | HTTP 四十问全解析

HTTP 协议是所有开发同学必须掌握的基本技术知识点。

  • 编写后台应用开发程序,需要关注 HTTP 协议;

  • 参与前端页面的开发,也需要了解 HTTP 协议;

  • 从事爬虫相关服务的建设,更需要对 HTTP 有深入的认知;

  • 服务测试抓包,分析网络数据,对 HTTP 的掌握是基本要求;

  • .......

但目前能够简单并清晰的总结 HTTP 重点知识的书籍少之又少。比较经典的《HTTP 权威指南》、《TCP/IP 详解》等,都是需要投入很多精力研究的厚重书籍。当然书中内容并不一定需要全部掌握或者学习。

基于这种情况,我根据之前研究的内容以及实际工作中的积累,将常见的 HTTP 重点知识整理出来,分享给大家。

为了更好更清晰的让大家掌握这些知识点,本 Chat 通过问答的形式来向大家展示所有内容。通过问题突出强调知识点方向,通过答案来巩固和学习知识点详细内容。

本 Chat 会分为五个方向, 总共 40 个问答来向大家介绍。同时尽量用图文并茂的形式向大家展示答案,方便大家快速地学习与掌握。

五个方向包括:

  1. HTTP 基本概念

  2. HTTP 状态码详解

  3. HTTP 报文解析

  4. HTTPS 的使命

  5. 安全漏洞全解析

相信大家通过本 Chat 的学习将会对 HTTP 有更全面更清晰的认知。对今后的工作以及后续的面试准备都会有很大的帮助。

成为大会员,在会员有效期内,GitChat 专栏所有内容与全场 Chat 均可免费阅读,赶快来加入吧。

Chat 严选 | HTTP 四十问全解析

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2023-03-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-30
  • 2021-07-03
  • 2021-04-21
  • 2021-05-15
  • 2021-05-26
  • 2021-10-25
  • 2022-12-23
相关资源
相似解决方案