当前位置:首页 > 数码 > HTTP-网络通信的标准语言剖析

HTTP-网络通信的标准语言剖析

admin7个月前 (04-15)数码29

引言

当我们在浏览器中输入一个网址时,瞬间跳转到想要的网页,背后隐藏着的是一系列复杂的网络通信过程。在这个过程中,有一种语言扮演着至关重要的角色,它就是HTTP(超文本传输协议)。这不仅仅是一种技术术语,它更是网络通信的基础和核心。今天,我们就来探索HTTP的奥秘,了解它是如何在我们的日常生活和工作中发挥作用的。

HTTP简介

HTTP,即HyperTextTransferProtocol,是用于传输超文本(例如网页)的标准网络协议。它定义了客户端(用户的浏览器)和服务器之间的通信规则。每当你访问网页时,你的浏览器都会通过HTTP向服务器发送请求,服务器响应这些请求后,浏览器再将内容展示给用户。

HTTP的工作原理

想象一下,HTTP就像邮递员,负责传递信息。当你在浏览器中输入一个网址时,你的浏览器(客户端)通过HTTP向服务器发送了一个请求。这个请求就像是一封信,告诉服务器你想要查看哪个网页。服务器接收到请求后,就会回应这个请求,发送一个响应,这个响应包含了你请求的网页内容。浏览器读取这些内容,并将其渲染成可以阅读的格式。

HTTP的应用场景

  • 网页浏览:这是HTTP最常见的使用场景。每次我们在线浏览网页时,都是通过HTTP请求和响应实现的。
  • API交互:许多网络服务和应用程序的接口(API)也使用HTTP来传输数据,例如天气应用获取最新天气信息。
  • 数据传输:HTTP还被用于文件传输,如图片、视频等。

HTTP的优势

  • 灵活性和可扩展性:HTTP协议简单灵活,容易扩展。它允许传输任意类型的数据对象,只需在头部字段内指定内容类型。
  • HTTP
  • 无状态性:HTTP是无状态协议,这意味着连续两次的请求是相互独立的。这简化了交互模式,但也引入了如Cookie这样的机制来维持状态。
  • 广泛支持:由于其简单和可靠性,HTTP得到了广泛的应用和支持。

HTTP与日常生活

虽然我们可能不会直接与HTTP打交道,但它却在我们的日常生活中无处不在。从在线购物、观看视频、读取新闻到社交媒体的交互,所有这些动作的背后都有HTTP的身影。

结语

在这个数字化不断发展的时代,HTTP作为网络通信的基础语言,其重要性不言而喻。它不仅使得网络浏览成为可能,还在多种应用中发挥着关键作用。掌握HTTP的基础知识,有助于我们更好地理解和利用网络资源,打开通往全球信息海洋的大门。


http网络基础

为了理解HTTP,首先先了解TCP/IP协议族,通常使用的网络是在TCP/IP协议族的基础上运作的,HTTP是属于它内部的一个子集。 计算机与网络设备要互相通信,双方就必须基于相同的方法。 如何探测到通信目标、由那一边向发起通信、使用哪种语言进行通信、怎样结束通信等规则都是需要事先确定,不同的硬件、操作系统之间的通信,所有的一切都需要一种规则。 这种规则被称之为协议。 在TCP/IP的协议族中最重要的一点就是分层,TCP/IP协议族的层次分别分为以下的四层: 将TCP/IP层次化的好处是:当协议的某个地方需要变动时可以只需将变动层替换掉即可,将各个层之间的接口规划好之后,每个层次内部的设计就可以自由的改动。 每个层只需要处理自己这个层的事情即可。 TCP/IP各个层的作用如下: 利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。 发送端从应用层-->传输层-->网络层-->链路层,接受端则从相反的方向走。 以http举例来说明: 发送端在层和层之间传输数据时,每经过一层必定会被打上改层首部的信息。 反之接收端在层与层之间传输数据时,每经过一层时会把对应的首部去掉。 下面来了解一下与HTTP关系密切的三个协议(IP、TCP和DNS) 按层次分,IP网际协议位于网络层。 IP协议的作用是把各类数据包传送给对方,而要确保包确实传送到了对方那里,需要满足各类条件。 其中两个重要的条件就是IP地址和MAC地址。 IP地址指明了节点被分配的地址,MAC地址是指网卡所属的固定地址。 IP地址可以和MAC地址进行配对。 IP地址可变换,但MAC地址基本不会更改。 使用ARP协议凭借MAC地址进行通信 IP间的通信依赖MAC地址,在网络上通信的双方在同一个局域网的情况很少,通常需要经过多台计算机和网络设备中转才能够连接到对方,在进行中转的时候,会利用下一站中转设备的MAC地址来搜索下一个中转目标。 这个时候会采用ARP协议。 ARP协议是一种用来解析地址的协议,根据通信方的ip地址可以反查出对应的MAC地址。 这种机制称为路由选择。 按层次分,TCP位于传输层,提供可靠的字节流服务。 字节流服务指的是:为了方便传输,将大块的数据分割以报文段为单位的数据包进行管理。 而可靠的传输服务是指,能将数据准确可靠的传递给对方。 为了准确无误的将数据传递给目标,TCP协议采用了三次握手策略,握手过程中使用TCP的标志SYN和ACK。 发送端首先发送一个带有SYN标志的数据包给对方,接受端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。 最后发送端再回传一个带有ACK标志的数据包,代表握手结束。 如果在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。 DNS服务与HTTP协议一样位于应用层,它提供域名到IP地址之间的解析服务。 了解了上面TCP/IP协议族中的各种协议之后,看一下在HTTP协议通信的过程中这些协议都发挥了那些作用。 URI:Uniform Resource Identifier (统一资源标识符)指的是:由某个协议方案表示的资源的定位标识符。 协议方案指的是访问资源时所使用的协议类型名称。 (采用HTTP协议时,协议方案就是http。 除此之外还有ftp、file、telnet等。 ) URL:Uniform Resource Locator,统一资源定位符; URN:Uniform Resource Name,统一资源名称,它只包括名称不包括资源的协议。 URI可以被分为URL、URN或两者的组合,URL、URN是URI的子集。 表示指的的URI,要使用涵盖所有必要信息的绝对URI、绝对URL以及相对URL。 下面是绝对URI的格式:

HTTP的优点点和缺点

上文中我们介绍了HTTP的特点,根据介绍的特点我们分析下优劣和好坏; 当然上述所说的特点是基于HTTP/1.1版本来说的; 这是HTTP中最为突出的优点,【简单、灵活、易于扩展】; 【灵活】和【易于扩展】这两个特点之间是相辅相成的,因为灵活让HTTP协议变得易于扩展; 反之,因为易于扩展让HTTP协议变得更加灵活; 该特点体现在,HTTP协议中的请求方法、状态码、头字段等信息没有被写死,我们开发人员可以任意定制、扩充或者解释; 同时这个特点有点像设计模式中的【策略模式】,就是HTTP的上层协议的语义没变,具体的下层协议没有限制,可以使用TCP,还可以使用SSL/TLS,甚至是UDP的QUIC; 这也是HTTP协议里另一大优点【应用广泛】; 从简单Web页面到复杂的JSON数据;从PC上的浏览器到手机上的APP,这些地方都在使用HTTP; 从应用领域到开发领域HTTP协议也都得到了广泛的支持;HTTP协议不局限于某一种开发语言或者操作系统,使其也具有了【跨语言、跨平台】的特性; 这个特性对HTTP来说既是优点也是缺点,是一把【双刃剑】 我们上文介绍过,无状态就好比是服务器没有记忆能力,就不需要存储额外的状态信息。 这样能减轻服务器的负担,同时能把更多的资源用于对外的服务上; 无状态就意味着服务器都是相同的,可以容易组层集群,通过负载均衡把请求转发到任意一台服务器上,不会因为状态不一致导致处理出错; 针对【无状态】就不会记录客户端的信息,需要身份校验的连续操作,服务器是不知道这些请求的关联,每次都得问一遍身份信息; HTTP协议理想态是既能【无状态】又能【有状态】不过这样的好事在Cookie技术上得到实现了; 明文传输也是HTTP协议中一把双刃剑; 明文准确的说:协议里传输的报文【header】部分不使用二进制数据,使用的是简单客阅读的文本形式; HTTP的明文传输,我们可以用浏览器、Charles、Wireshark这样的工具抓包后,可以肉眼容易地查看或者修改,我们开发工作带来了很大的便利; HTTP报文信息都暴露光天化日之下,在漫长的传输链路上毫无隐私可言; 明文传输只是【机密】方面的一个缺点,在【身份认证】和【完整性校验】这方面HTTP有所欠缺; HTTPS的出现就是为了解决这个不安全问题; 简单来说就是怎么证明是你,在虚拟网络中HTTP没有提供有效的手段来确认通信双方的真实身份; 不支持该特性,数据在传输过程中很容易被篡改而无法验证真伪; HTTP的性能 不算差也不够好; HTTP协议是基于TCP/IP协议的,并且使用了【请求-应答】的通信模式 TCP协议的性能是不差的,能够应付大多数场景; 江湖不再是以前的江湖,现在互联网是【高并发】,不能保证稳定的连接质量,在TCP基础上HTTP协议有时候会表现的不够好; 同时【请求-应答】模式加剧了HTTP性能问题,会出现【对头阻塞】,当顺序发送的请求序列中有一个请求因为某种原因阻塞时,其他在排队的就一直被阻塞了; 不够该问题在HTTP/2和HTTP/3中都得以解决了;后面再说;

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: HTTP

“HTTP-网络通信的标准语言剖析” 的相关文章

HTTP-HTTPS-之间的非安保性差异-与

HTTP-HTTPS-之间的非安保性差异-与

HTTP和HTTPS是两种经常出现的网络协定,它们都是用于在阅读器和主机之间传输数据的。但是,它们之间也有一些关键的区别,这些区别触及到数据的安保性、传输性能、经常使用老本和搜查排名等方面。本文将...

形态码和安保实践-头字段-HTTP-粗浅剖析-协定 (形态码和安保码的区别)

形态码和安保实践-头字段-HTTP-粗浅剖析-协定 (形态码和安保码的区别)

HTTP(HypertextTransferProtocol) 是一种用于在Web阅读器和Web主机之间传输数据的协定。它是一种有形态协定,象征着主机不会保管与客户端之间的任何衔接形态...