http 底层协议是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http 底层协议是啥?相关的知识,希望对你有一定的参考价值。
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。
它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。
HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
扩展资料:
通过HTTP或者HTTPS协议请求的资源由统一资源标示符(Uniform Resource Identifiers)(或者,更准确一些,URLs)来标识。
1、基于请求/响应模型的协议。请求和响应必须成对,先有请求后有响应
2、http协议默认端口:80
3、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。
每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
4、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
5、无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
6、无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
参考资料来源:百度百科-HTTP
参考技术AHTTP 协议定义服务器端和客户端之间文件传输的沟通方式。目前HTTP协议的版本是Http1.1。RFC 2616描述了HTTP协议的具体信息,这个协议已经成为浏览器和Web站点之间的标准。
http协议的底层是在应用层里,是一个特殊处理的socket,建立在TCP/IP协议之上的一种广泛应用,服务器先初始化一个socket,与端口绑定,对端口进行监听,调用阻塞,等待客户端的连接
HTTP工作的基础就是,连接一个服务器并开始传输文件到浏览器。HTTP传输的基本过程,在http传输的过程中,被称为客户端的请求者向服务器请求一个文件。
扩展资料:
TCP和UDP的区别:
TCP是面向链接的,虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性,但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了连接的可靠性;而UDP不是面向连接的。
UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以说UDP是无连接的、不可靠的一种数据传输协议。
参考资料来源:百度百科-HTTP
参考技术BHTTP是一种允许获取资源的协议,例如html文档。 它是Web上的任何数据交换和客户端 - 服务器协议的基础,这意味着请求由接收者(通常是Web浏览器)发起。 一个完整的文档是根据不同的子文档重新获得的,例如文本,布局描述,图像,视频,脚本等等。
HTTP是一种客户端 - 服务器协议:请求由一个实体,用户代理(或代表它的代理)发送。 大多数情况下,用户代理是一个Web浏览器,但它可以是任何东西,例如抓取Web以填充和维护搜索引擎索引的机器人。
客户和服务器通过交换单个消息进行通信(而不是数据流)。 客户端发送的消息(通常是Web浏览器)称为请求,服务器发送的消息作为答复称为响应。
HTTP(HyperText Transport Protocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求。
请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个指示头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。
每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。
扩展资料:
虽然不管从一些抓包监听工具还是HTTP的请求工具,甚至是从代码角度看,HTTP都是一个Request,同时返回一个Response的数据对象。
里面包含了整个HTTP Response的数据内容,从而形成一个完整的接口,实际上一个完整的HTTP请求是有多个步骤的,只是被封装了起来,这有利于更快速的开发和测试,但也给需要更多学习的人带来的很多的麻烦,无法了解内部到底是怎么做的。
理解HTTP的通信过程是有必要的,特别是在一些接口的性能测试和安全测试方面。先来看单个HTTP的过程,这样也有利于理解HTTP为什么既是短连接,又可以使用长连接的模式,这些内容也有助于学习更底层更复杂的协议。
HTTP & HTTPS通信过程
1、DNS Lookup
DNS(Domain Name System),所谓DNS Lookup就是一个域名解析的过程,将一个域名转换为IP,在互联网中都是依赖于IP进行访问的,域名只是一个名称。
为了便于记忆而产生。如果是直接IP访问,那么就没有DNS Lookup这一步,另外还有一种情况,当短期内已经解析的域名,也会根据之前解析的缓存直接读取,跳过DNS Lookup的过程。
2.、TCP Connect
TCP Connect即TCP连接,这个步骤只要是经过TCP传输连接的,都统一会有,相当于打开一个数据传递通道,每一次新的TCP连接都会有这么一个过程。
而HTTP也是通过TCP进行传递数据,这个过程还要是新的连接就是必然产生的,也称之为“三次握手”。如果是使用已有的TCP传输通道,那么在HTTP请求时就不会有这个步骤,这个依赖已经建立的连接过程一般就叫作长连接。
3、HTTPS Handshake
HTTPS Handshake 即HTTPS握手过程,用于交换证书等一系列的加密信息,只有在协议为HTTPS的情况下会出现,而且必须有,且这个步骤只会存在于每次新的TCP连接之后进行。
对于已经连接或者复用之前已经做过这个握手过程的,也将跳过这个步骤。如果是普通的HTTP协议,那么就没有这个步骤。
4、HTTP Request Header
这里的HTTP Request Header包括了2个部分,首先是请求行,再来是所有的头信息,那么不管是什么样的HTTP请求方法,都是必然包含这些内容的,所以这是在HTTP通信过程中不可缺少的部分。
5、HTTP Request Body
HTTP Request Body从常理来说,应该和上一步Header都是HTTP Request的数据,是完全可以合在一起发送的,但是比较规范的协议角度还是将他们分开了。
但这并不会影响任何的解析,对于GET等没有Body的HTTP请求方法,那么就没有这个步骤,也是为什么从会提到GET速度相对快一些的原因,但这个差别几乎是看不到的。
6、HTTP Response Header
HTTP Response和Request相同,也是将Header和Body分开了,Header这个步骤是必须的,很多时候甚至只需要HTTP状态码即可分辨结果。
7、 HTTP Response Body
在Response Header之后,继续发送的Response Body内容,但如果没有Body,那么跳过此步骤。
8、TCP Close
既然有连接的打开,就也会存在TCP连接的关闭,但如果协定了不关闭连接,比如HTTP中的Keep-alive逻辑,就会将一个连接保留在后续HTTP请求的过程中再次利用。
参考资料来源:百度百科-网络七层协议
参考资料来源:百度百科-http
以上是关于http 底层协议是啥?的主要内容,如果未能解决你的问题,请参考以下文章