JackHttp -- 从原理来理解 HTTP

本文从TCP/IP协议族的概念出发,探讨了HTTP在网络通信中的作用,介绍了HTTP的基本定义和超文本概念。文章详细阐述了HTTP的工作原理,包括请求行、请求头、响应码等关键组成部分,帮助读者理解HTTP协议的目的和在网络通信中的地位。
摘要由CSDN通过智能技术生成

JackHttp 系列的介绍


在介绍 HTTP 之前,首先我们来思考几个问题

  1. HTTP 到底是什么?
  2. HTTP 在整个网络通信中扮演着怎样的角色?
  3. HTTP 是如何进行通信的呢?

带着这 3 个问题 ,我们来开始今天的内容。(当然,如果大神对这3个问题比较清楚,可以直接跳到末文看总结)。

在理解 HTTP 之前,首先我们得先来看看 TCP/IP 协议族是什么?

简介TCP/IP

定义:

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP 协议不仅仅指的是 TCP 和 IP 两个协议,而是指一个由 FTP、SMTP、TCP、UDP、IP 等协议构成的协议簇, 只是因为在TCP/IP 协议中 TCP 协议和 IP 协议最具代表性,所以被称为TCP/IP协议。

看上面的描述一大堆,不需要死记硬背,我们只需要有一个概念,也就是 TCP/IP 的本质。

本质:

一系列协议所组成的一个网络分层模型。

哦,,搞半天你是个协议族,还分层?分几层 ?为啥子要分层?

具体分层:
OSI 七层模型 TCP/IP 模型 功能 TCP/IP 具体包含的协议
应用层 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SMMP,FTP,SMTP,DNS,Telnet
表示层 应用层 数据格式化,代码转换,数据加密 没有协议
会话层 应用层 接触或建立与别的接点的联系 没有协议
传输层 传输层 提供端到端的接口 TCP,UDP
网络层 网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BCP,ICMP
数据链路层 链路层 传输由地址的帧以及错误功能检测 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层 链路层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2

简单的看这个图似乎好像有些复杂,这里我们只需要了解三点:

  1. TCP/IP 的分层是从开放系统互联 OSI (Open System Interconnection)模型演变而来的。
  2. TCP/IP 与 OSI 在分层模块上有些区别,OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。
  3. 在 TCP/IP 协议中,它们被简化为了四层.分别是应用层、传输层、网络层、链路层

知道以上信息再结合我们实际的开发,其实上面这个表可再以优化一下,把我们常用的协议取出,如下:

TCP/IP 模型 TCP/IP 具体包含的协议
应用层 HTTP,FTP,DNS
传输层 TCP,UDP
网络层 IP
数据链路层 路由,WIFI

这样看就简洁多了吧,OK,回到之前我们的疑问,我们现在大致了解了 TCP/IP 协议族确实需要分层,并且是分四层,那么,重点来了?到底为什么需要分层呢?

核心原因,主要是网络的不可靠性,或者说是网络的不稳定造成的。 假设我们的网络是稳定可靠的,那么应用层软件其实可以直接和链路层设备进行通信,哪还需要中间这么复杂的过程。其中 TCP 协议的三次握手和他的窗口(吞吐量)也主要是来处理网络的不稳定和不可靠性的,后面的文章中会讲到。另外分层的次要原因还考虑到安全、节约宽带、方便管理等。

弄明白上面几个问题后,我们对 HTTP 在网络通信中扮演的角色已经有了一个初步的了解。读到这里我们可以对本文开头的第二个问题进行回答了,哦!!!,原来 HTTP 在整个网络通信(TCP/IP 协议族)中属于应用层的一个协议,用于和传输层进行通信。

那么到底什么是 HTTP?

我们平时感受到 HTTP 比较直观的是两个场景

  1. 在我们游览器地址栏啪输入“www.jackwaiting.com”,啪,一个界面出来了。
  2. 在我们编写软件程序的时候,拿到后台的一个接口。例如:“https://www.jackwaiting.com?xxx=“xxx” ” 然后对这个 HTTP 请求做一系列的描述,什么请求方法咯,GET/POST , 请求行,请求 Body,返回码,XXXX 一大堆,对吧?
定义:</
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JackWaiting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值