HTTP网络知识总结

1. HTTP基本介绍

HTTP协议:是种超文本传输协议(请求/响应协议)。它是建立在TCP上无状态单向链接协议(属于TCP/IP协议族中一员)。它规定客户端发送什么样的数据给服务器端(HTTP请求),并且服务器端需要返回什么样的数据(HTTP响应);注意一个完整的HTTP请求/响应,并不只是通过HTTP协议来实现的。而是由多个协议相互协作实现的;
在这里插入图片描述

  1. HTTP请求/响应
  2. HTTP握手和挥手
  3. 网络TCP/IP分层模型
  4. HTTP版本发展史
1. HTTP请求和响应

HTTP请求是由客户端发起的动作,告诉服务器需要什么数据。这一过程称之为HTTP请求。服务器接收到HTTP请求后,作出相应的处理,返回HTTP请求所需要的数据。这一过程称之为响应;如图所示:
在这里插入图片描述
不管是HTTP请求/响应,它们的结构一般分为3层。请求行/响应行、请求头/响应头、请求主体/响应主体。这3层结构组成统称为请求/响应报文;

HTTP请求结构

1. 请求行:主要由请求方式GET/POST/PUT等、对应的URL地址,HTTP协议和协议版本组成;
2. 请求头:主要由若干属性组成,包含用户代理、cookie等用户信息;
3. 请求主体:主要是给服务器端发送的数据。

HTTP响应结构

1. 响应行:HTTP协议、协议版本、状态码和状态描述组成;
2. 响应头:主要由若干属性组成,包含数据类型(content-type)、数据长度(content-length)等信息;
3. 响应主体:主要反馈给客户端的数据信息(JSON数据、图片、音频等数据);
2. HTTP的握手和挥手

每个完整的HTTP请求,客户端都会发起3次握手和4次挥手动作。3次握手是发生在HTTP连接建立阶段;4次挥手发生在HTTP连接断开阶段;如图所示:
在这里插入图片描述

1. 3次握手

第一次握手:客户端在TCP中准备SYN标志位1,并初始化序号为X发送给服务器端;

第二次握手:服务器端接收到客户端的报文,就准备确认包(ACK)应答。ACK和SYN标志位都为1,同时初始化序号Y,将客户端的发送序号置于X+1。响应给客户端;

第三次握手:客户端接收到服务器响应,将服务器序号Y+1,准备确认包(ACK)应答(ACK标志位1,SYN标志位0),同时发送序号Z给服务器端做最后的确认,并建立链接;

2. 4次挥手

第一次挥手:客户端发送一个FIN,用来关闭服务端到Server的数据传送,客户端进入FIN_WAIT_1状态。

第二次挥手:服务端 收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务端进入CLOSE_WAIT状态

第三次挥手:服务端发送一个FIN,用来关闭Server到Client的数据传送,服务端进入LAST_ACK状态。

第四次挥手:客服端收到FIN后,服务端进入TIME_WAIT状态,接着发送一个ACK给服务端,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

总结过程:客户端发送HTTP请求时,会经过3次握手阶段确认连接的建立,连接建立成功后,就开始传递数据并获取服务器的响应。接收响应结束后,又会经过4次挥手阶段,确认连接的断开;

好比我们需要去朋友那拿点东西,先打电话过去确认朋友在不在家,如果朋友在家,我们再过去拿东西(这样就可以避免朋友不在家,白跑一趟)。拿到东西后,就告诉朋友不需要再拿东西。朋友知道后就会做其他事情了。不用等着我们了;

通过该过程可知HTTP请求对于服务器端属于被动的,它不能主动发送任何数据给客户端,它必须等待客户端请求才能做出相应的反馈。同时HTTP又是无状态的,服务器端不知道客户端是不是第N次访问。

3. 网络TCP/IP分层模型

网络模型中有OSI七层模型和TCP/IP四层模型。由于OSI模型过于复杂,在网络中只做理论参考,实际应用场景中,TCP/IP模型应用广泛,已经成为互联网的实施标准。所以这里直接上TCP/IP模型;如下图所示:
在这里插入图片描述

TCP/IP四层模型
对应网络协议
应用层
HTTP、TFTP, FTP, NFS, WAIS、SMTP
Telnet, Rlogin, SNMP, Gopher
SMTP, DNS
传输层
TCP, UDP
网络层
IP, ICMP, ARP, RARP, AKP, UUCP
数据链路层
FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
IEEE 802.1A, IEEE 802.2到IEEE 802.11

(来自:https://blog.csdn.net/xuedan1992/article/details/80958522)

  1. 应用层:该层更加协议不同决定提供用户不同的应用服务。例如FTP文件传输协议提供文件上传/下载功能;HTTP超文本协议,提供对多种不同类型网络数据的访问;
  2. 传输层:为应用层提供端到端的通信,保证了数据包的顺序性和完整性的传输;
  3. 网络层:将用户传输的数据进行整理成数据包,以数据包的形式在网络中传输;
  4. 数据链路层:将物理层的数据比特流封装成帧,控制帧在物理信道上的传输,包括纠错,调节发送速率等。另外还提供了两个主机之间数据链路的建立,维持和释放的管理工作;
4. HTTP版本发展史

1. HTTP 0.9版本:这一阶段的HTTP提供的功能及其有限。在这一版本只能使用GET方式请求,然后请求完毕之后立即关闭连接。

2. HTTP 1.0版本:该版本新增HEAD和POST请求方式,还支持多种不同的数据类型,不再局限于文本;同时新增了状态码概念,用来标记报错原因;但是该版本只能串行发送请求,不能多个请求同时发送,并且不支持keepalive;

3. HTTP 1.1版本:这一版本利用管道技术实现多请求同时发送(支持并行请求),同时还支持keepAlive,减少了握手/挥手次数,提高了服务器性能;该版本也是目前主流版本;

4. HTTP 2.0版本:该版本支持真正意义上的并行请求,同时支持双全工通信。也就是服务器端也可以主动发送数据给客户端。不再是被动发送了。

5.补充说明
  • 管道技术:可以将多个HTTP请求统一放置一个TCP中发送,不用等待前一个HTTP响应之后再发送。但是对于单进程I/O模型来说,这种方式并没有优化HTTP请求。虽然管道技术实现了并行HTTP请求,但是响应结果还是按照发送HTTP请求的顺序来接收的;

  • keepAlive介绍:在这分为TCP keepAlive和HTTP keepAlive这两种。

  1. TCP keepAlive是为了检测链接的可用性;主要参数如下:
tcp_keepalive_time // 距离上次传送数据多少时间未收到判断为开始检测
tcp_keepalive_intvl // 检测开始每多少时间发送心跳包
tcp_keepalive_probes // 发送几次心跳包对方未响应则close连接

当经过3次握手建立链接之后,如果客户端关闭,服务器未收到反馈,就会发送空心跳包去检查链接是否可用。如果不可用就关闭连接;

  1. HTTP keepAlive是为了告诉服务器HTTP请求完之后不要关闭连接,因为在4次挥手之后服务器会首先关闭连接。,以减少3次握手和4次挥手次数,提高HTTP请求效率。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 计算机网络是指通过计算机和网络设备互联而形成的计算机系统。谢希仁的《计算机网络》是计算机网络领域的一本经典教材,涵盖了该领域的许多重要知识点。 该书首先介绍了计算机网络的基本概念和发展历程,从分布式系统和网络体系结构入手,阐述了计算机网络的基本工作原理和体系结构。 其次,谢希仁详细介绍了计算机网络的通信协议。他解释了OSI参考模型、TCP/IP协议与各种网络层的工作原理,并对数据传输、路由选择、错误控制和流量控制等关键技术进行了深入讲解。 此外,书中还探讨了局域网和广域网的建设与管理。谢希仁详细介绍了以太网和无线局域网的构建和实现方式,讲解了广域网中的各种设备和技术,包括传输介质选择、调制解调器、交换机和路由器等。 最后,谢希仁还涉及了一些计算机网络的相关主题,如网络安全和网络管理。他讲解了常见的网络攻击和防御策略,还介绍了网络性能监测和故障排除的技术和方法。 总结起来,谢希仁的《计算机网络》是一本系统全面的计算机网络教材,涵盖了计算机网络的各个方面,是学习计算机网络知识的重要参考书籍。 ### 回答2: 谢希仁是计算机网络领域的著名专家,他的书《计算机网络》被广泛用作计算机网络相关课程的教材。在这本书中,谢希仁系统地介绍了计算机网络的基本概念、原理、协议和应用。 计算机网络是指多个计算机通过通信线路相互连接,并按照一定的规则进行数据交换和通信的系统。计算机网络是信息技术的重要组成部分,它为人们提供了便捷的信息交流和资源共享的方式。 在计算机网络中,重要的知识点包括网络拓扑、通信协议、网络层、传输层、应用层等。 网络拓扑是指计算机网络中各个计算机节点之间的连接方式,常见的网络拓扑有星形拓扑、总线拓扑和环形拓扑等。不同的拓扑结构对网络性能和可靠性都有不同的影响。 通信协议是计算机网络中实现数据交换和通信的规则和约定。常见的网络协议有TCP/IP协议、HTTP协议等。通过协议,计算机之间可以进行可靠的数据传输。 网络层负责实现数据包的路由选择和转发,以及网络地址的分配和管理。传输层负责实现数据的可靠传输和流量控制。应用层则提供了各种网络应用程序的接口和协议,如电子邮件、Web浏览器等。 除了以上的核心知识点,谢希仁在书中还讨论了计算机网络的安全性、网络管理和性能优化等话题,并对未来的网络发展进行了展望。 总的来说,计算机网络是计算机科学中非常重要的领域,谢希仁的著作对于理解和深入学习计算机网络知识具有很大的帮助和指导作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值