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

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)

  1. scheme: 标识了对应使用的协议类型,如http://或者https://等。
  2. host: 对应为服务器的地址,可以是对应的IP或者是域名,标注主机在网络中的位置。
  3. 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浏览器了,相应的搜索引擎也是一种用户代理,
在这里插入图片描述

原文地址:https://www.cnblogs.com/yanzs/p/13788226.html