1.1HTTP概述
1.1 HTTP概述
HTTP(Hyper Text Transfer Protocol
)----超文本传输协议,是一个用于从WWW服务器传输超文本到本地浏览器的传送协议。网上冲浪打开的无数个网页,接收到不同种类的信息,少不了HTTP协议可靠的数据传输的支持。
-
客户端和服务器:进行Web活动,请求资源的是客户端,响应请求的是客户端,HTTP协议确保这两端的数据传输。无数条请求-响应线路构成了庞大的万维网。
-
资源:Web服务器是Web资源(web resource)的宿主。所有能够提供的web内容都是web资源,可以是静态的,如jpg文件,也可以是软件程序,它们会动态生成客户端想要的资源,如搜索引擎。
-
媒体类型:传输的资源有很多种类型。HTTP用
MIME
类型为每次传输的数据打上标签。MIME类型是一种文本标记,标识主要的对象类型和一个特定的子类型,中间用一条斜杠来分隔,如:html用text/html来表示。URI:统一资源标识符(Uniform Resource Identifier)。有两种形式:
URL
,URN
URL:统一资源定位符(Uniform Resource Locator),是URI最常见的形式。是中心化的模式(如,以一个网站服务器为中心,资源在这个服务器手中,所有服务器都要发送请求以在这个服务器获取相关的资源)
组成部分:协议类型(scheme)+ 服务器地址 + 具体的资源位置
如: http:// www.joes-hardware.com /specials/saw_blade.gif
URN:统一资源名(Uniform Resource Name),URN是作为内容的唯一名称使用的,与目的的资源所在地无关。例如:urn:ietf:rfc:2241
这也就说明资源移动位置同样可以找到,因为名字是唯一的,不受在那个具体服务器的约束,具有去中心的思想。
但是URN仍处于实验阶段,因为这需要一个支撑架构来解析资源的位置。架构的缺乏延缓其被采用的进度。
-
事务 :一个HTTP事务由一条请求指令和一个响应结果组成。这种通信是通过名为HTTP报文的格式化数据块进行的。
方法:HTTP支持几种不同的请求方法,这些命令被称为HTTP方法(HTTP method)
常见的HTTP方法:GET PUT DELETE POST HEAD
相关的详细讨论在后面状态码:HTTP响应报文会返回一个状态码告知客户端请求的状态如何,是否成功,或者是否需要采取其他动作。状态码是一个三位数字的代码。
常见的HTTP状态吗:200(ok) 302(Redirect) 404(Not Found) -
报文 :请求和响应是通过报文形式传递的。HTTP都是纯文本,不是二进制代码。
HTTP报文包括:
-
起始行(start line)(请求报文:要做些什么,响应报文:出现了什么情况)
-
首部字段(HTTP headers)(情况,能力的描述),以空行 (CRLF)结束
-
主体(body)(可选,内容为客户端或者服务器要发送给对方的数据。主体可以包含任意的二进制数据)
-
-
连接 :报文如何通过传输控制协议连接从一个部分转移到另一个地方去呢?
TCP/IP:HTTP是一个应用层协议,因此在传输时不需要考虑底层的具体实现,它把联网的细节都交给了通用,可靠的因特网传输协议TCP/IP,它提供了无差错的数据传输,按序传输。
连接,ip地址以及端口号:
建立TCP/IP协议的连接之前,你得知道你想要连接的对象的ip地址和端口号,这样连接才能找对位置。ip地址可以是域名形式的,然后通过DNS 服务进行解析,也可以直接是数字形式的。当url中没有端口号时,可以默认端口号是80
-
web的结构组件 :在实际运用中,除开客户端和服务器,还需要很多别的组件协助,才能将实现较好的事务处理效果。
代理:位于客户端和服务器之间的http中间实体
代理是web安全,应用集成以及性能优化的重要组成模块缓存:HTTP的仓库,使常用页面的副本可以保存在离客户端更近的地方
web缓存(web cache)或者代理缓存(proxy cache)是一种特殊的HTTP代理服务,保存常用文件的本地副本以提高性能。除了可共享的web缓存,浏览器也会在本地储存文件的本地缓存。
网关 :连接其他应用程序的特殊web服务器
网关(gateway)通常用于将HTTP流量转换成其他的协议
隧道 :对HTTP通信报文进行盲转发的特殊代理
隧道(tunnel)常用来在一条或者多条HTTP连接上转发非HTTP数据,转发时不会窥探数据,常见用途是通过HTTP连接承载加密的安全套接字层(SSL, Secure Sockets Layer)流量,这样SSL陆良就可以穿过只允许web流量通过的防火墙了。
Agent代理 :代理用户发起自动HTTP请求的半智能web客户端
web浏览器就是一种代理,此外还有“网络蜘蛛”(spiders)和“web机器人“(web robots)等
图源来自MDN
以上就是简要介绍,下面的章节将围绕上面的每个部分经行详细的介绍。
本文地址:https://blog.csdn.net/qq_42134736/article/details/107434983