HTTP权威指南------1.1HTTP概述

    技术2022-07-10  148

    HTTP权威指南------HTTP概述

    HTTP概述C/S媒体类型URIURLURN 事务方法状态码 报文连接版本历程Web的结构组件代理缓存网关隧道用户代理

    HTTP概述

    HTTP是可靠数据传输协议,其传输过程确保数据的完整正确,无需进一步关注传输过程的控制。

    C/S

    客户端与服务器架构,服务器存储相应的web内容数据,客户端提出请求,服务器响应,通过报文对应完成资源请求的通信。 其中资源内容寄存于服务器中,其形式多样,可以是静态的文件,也可以是动态的程序服务。

    媒体类型

    MINE原先是用于邮件协议的,在HTTP的得以沿用,对应产生一个MINE类型来标注具体数据的内容。相应的形式在报文中以Content-type进行标注,其内容以 / 分割比如html格式为text/html,因为html在具体传输的时候还是以文本的形式,但是其具体的类型是html文件,所以标注为text/html,前者标注一个大范围的对象类型,后者具体标注子类型。

    URI

    URI(Uniform Resourse Identifier)统一资源标识符,其为每一个数据资源都进行一个标注,便于在访问的时候进行区分。其对应的形式有两种一个为URL(统一资源定位符),一个是URN(统一资源名)。

    URL

    对应的形式为: (scheme)+(host)+(path)

    scheme: 标识了对应使用的协议类型,如http://或者https://等。host: 对应为服务器的地址,可以是对应的IP或者是域名,标注主机在网络中的位置。path: 找到对应主机后,通过path就可以找到相应资源的位置。 如今,URL几乎就是URI的形式。

    URN

    URN作为特定内容的唯一名称使用,不关注资源所在的位置,同一个名称可以通过多种协议来访问资源。URN并未广泛使用。

    事务

    对于相应的资源请求,使用事务的形式对其进行处理,一个事务包括一个请求命令(客户端到服务器)与一个相应结果组成(服务器到客户端),而具体的过程是通过HTTP报文(一种格式化数据块)完成的。一个web界面的资源请求往往是由多个事务组成。

    方法

    对于请求的命令种类有多个,其命令称为HTTP方法。

    状态码

    状态码对应的在响应报文中,通过一个三位数字表示,表示请求处理的状态,通过这些状态来进一步进行相应操作。每个状态都对应一个原因短语,用于描述状态信息。

    报文

    报文主要包括请求报文与响应报文。对应的编码是纯文本编码,不是二进制。请求报文是客户端发往服务器的,响应报文是服务器发往客户端的。 其组成为:

    起始行: 请求报文的起始行说明报文动作是啥,对应的包括请求的方法,路径,HTTP的版本;响应报文则对应说明请求的情况,包括HTTP的版本,状态码,与状态码对应的原因短语。首部字段: 由零到多个首部字段组成,每个字段占一行,首部字段是一个键值对,中间以 “:” 隔开,最后以一个空行结束。报文主体: 请求报文中主体为发给web服务器的数据,响应报文中则是返回给客户端的数据,主体的结构不是结构化的,根据主体的不同,可以包含任意的二进制数据,或者文本数据。

    连接

    HTTP使用TCP协议进行传输层的通信传输。 大致过程:

    由URL得到IP或者域名。通过DNS将域名转换为IP。URL中如果有端口号则使用URL中的端口号,若没有则默认80为端口。由套接字(IP加端口)建立TCP连接。传输报文(请求与响应)。获得到资源,关闭TCP连接,处理或者展示数据。

    版本历程

    HTTP/0.9: 1991年的原型版本,仅支持GET方法,不支持MINE类型与各种HTTP首部,其目的仅为了获取HTML对象。HTTP/1.0: 添加了各种首部与额外的相关方法,满足了对于多媒体数据对象的处理。HTTP/1.0+: 非官方的标准统称为1.0+,添加了包括持久连接,虚拟主机支持,代理连接支持等。HTTP/1.1: 完善HTTP的结构,明确语义,删除了许多的不必要特性,引入了性能优化,是当前的主流版本。HTTP/2.0: 是HTTP后续的原型建议,侧重于性能优化和更强的服务器逻辑远程执行框架。

    Web的结构组件

    代理

    其位置是在客户端与服务器之间的,其作用是处理转发的,客户端发送请求到代理处,代理进行处理(也可以不处理直接转发),之后进行转发,之后收到服务器的响应后转发给客户端。对于客户端其充当了服务器的角色,对于服务器其充当了客户端的角色。

    缓存

    Web缓存是一种特殊的HTTP代理服务器,其实现的功能不仅是处理转发,其本身还具有存储缓存的功能,可以将流经代理的相关常用文件进行缓存,当客户端再次使用的时候就不用再次去请求服务器,提升处理性能(再次请求服务器相对的代价更大)。

    网关

    是一种特殊的服务器,其位置也是在客户端与服务器之间,其可以将HTTP流量转换为其他协议。

    隧道

    通过HTTP协议不仅可以传输HTTP一个协议相关的数据,也可以将多个协议或者对多个端口的访问数据打包到HTTP中,通过HTTP协议进行传输。 其特点是盲发,在转发的过程中是不会查看数据的,常见的用法是在HTTP承载SSL(安全套接字层)流量,对于相应只允许Web流量通过的防火墙规则就被绕过了。

    用户代理

    代表用户发起HTTP请求的程序,常见的就是Web浏览器了,相应的搜索引擎也是一种用户代理,

    Processed: 0.029, SQL: 9