您所在的位置:首页 > 移动互联

热点推荐

最新推荐

HTTP协议简介——HTTP协议基础知识学习

编辑:互联网思维网时间:2019-03-16 14:16:25阅读次数:

HTTP简介

HTTP协议为超文本传输协议(超文本传输协议)的首字母缩写被用于在万维网(万维网)服务器从超文本传输到本地传输协议。

HTTP用于传输数据(HTML文件,图像文件,查询结果,等。)基于TCP / IP的通信协议。

HTTP是属于面向对象的应用层,由于用于分布式超媒体信息的简单,快速的方式的协议。提议于1990年,经过几年的应用和发展,不断完善和扩大。目前在使用的WWW是HTTP / 1。第六版0,HTTP / 1。在正在进行的标准化工作1,和HTTP-NG(HTTP的下一代)的建议已经提出。

HTTP协议的工作原理上的客户端 - 服务器架构上。HTTP浏览器通过W?b服务器的URL的客户端发送到HTTP服务器的所有请求。根据接收到的请求的W?b服务器,响应信息发送到客户端。

主要特征

1,简单和快速的:客户服务请求到服务器,而不是发送请求方法和路径。请求方法常用的G?T,HEAD,POST。各方法提供了不同类型的客户端和服务器连接的。由于简单的HTTP协议,HTTP服务器程序,使得小,快速的通信,因此。

2,灵活:HTTP允许任何类型的数据对象的传输。据传输的类型被标记由内容类型。

3。无连接:无连接是限制每个连接只有一个请求的意思。之后,服务器处理客户请求和接收客户的响应,我。e。,断开连接。通过这种方式可以节省传输时间。

4。无状态:HTTP协议是无状态协议。无状态是用于事务处理和存储器没有协议。如果缺乏状态意味着在信息前所需的后续处理中,它必须被重传,这可能导致数据传送量增大的每个连接。在另一方面,当服务器不需要在其快速响应先前的信息。
如图五所示,支持B / S与C / S模式。

该HTTP URL

HTTP使用统一资源标识符(统一资源标识符,URI)来传输数据并建立连接。URL是一种特殊类型的URI,它包含足够的信息查找资源

URL,代表UniformResourceLocator,中国被称为统一资源定位器,用于在识别互联网上的资源地址。在以下URL作为例子,下一个普通URL的组合物的各部分:

如可以从上面的URL中可以看出,一个完整的URL包括以下几个部分:
1。协议:协议作为URL“HTTP:”的一部分,其表示页使用HTTP协议。间可以以各种协议,如HTTP的使用,FTP和用于本实施例等是HTTP协议。在“HTTP”后面“//”是一个分隔符

2。域名部分:网址的域名部分是“一个URL,你也可以使用IP地址作为域名

3。端口部分:继域名的端口,域名和端口之间用“:”作为分隔符。端口不是URL的强制部分,如果你省略了部分端口,默认端口

4。虚拟目录部分:从后“/”开始到最后的第一个域名“/”到目前为止,是虚拟目录的一部分。虚拟目录不是URL的一个必要组成部分。在这个例子中,虚拟目录是“/新闻/”

五。文件名称的一部分:从上次域名“/”开始“?“到目前为止,这是文件名的一部分,如果没有”?“这是从域名后最后一个” /“开始”#“到目前为止,在文件的一部分,如果没有”?“和”#“然后域从姓” /“开始到结束,是文件名的一部分。在这种情况下,文件名是“指数。ASP“。文件名称的一部分是不是URL的一个必要组成部分,如果你省略这部分,默认的文件名

6。锚部分:从“#”开始到结束,它是锚部分。本实施例的锚定是“名称”。该URL的锚部分不是一个必要组成部分

7。参数部分:从“?参数部分的一部分,也被称为搜索查询部分的部件之间“开始,以”#“到目前为止,。本实施例中的参数是 “板卡ID = 5&ID =&页= 1”。参数,以允许多个参数,所述参数和所述“&”作为分隔符之间的参数。

URI和URL之间的区别

URI,是统一资源标识符,统一资源标识符,用于唯一地标识一个资源。

如HTML文档,图像,视频片段,程序等的每一个可利用的资源是一个URI被定位在Web上
URI一般由三个:
①访问资源的命名方案
②存储在主机名资源
③资源本身的名称,由路径来表示,重点在于资源。

URL是统一资源定位符,统一资源定位器,这是一个特定的URI,即URL可以用来标识资源,同时也说明了如何找到这个资源。

是用来描述间信息资源的URL字符串,主要用在各种WWW客户机和服务器程序,特别是著名的马赛克。
URL可以采用统一的格式来描述各种信息资源,包括文件服务器和目录,如地址。URL通常由三个部分组成:
①协议(也称为服务模式)
②那里的资源的主机IP地址(有时也包括端口号)
③解决特定的主机资源。如目录和文件名等。

URN,统一资源名称,统一资源名称,资源由名称标识,如邮寄地址:Java的Java的@。太阳。

URI是统一资源标识符的概念的抽象,高层次定义,和URL和URN是标识特定资源。URL和URN是一种URI的。概括地说,每个URL是一个URI,但并不是每一个URI是一个URL。这是因为URI还包括一个子类,或统一资源名称(URN),它命名资源但不指定如何定位资源。实施例以上的mailto,新闻和ISBN URI是URN。

在URI的URI中的实例可以表示绝对或相对的,只要它满足URI语法规则。URL类不仅在语义,也包含信息,以查找资源,所以它不能是相对的。
在Java类库中,URI类不包含任何方法来访问资源,它唯一的功能是解决。
与此相反,URL类可以打开资源的流动,达到。

的HTTP请求消息请求

客户端向服务器发送HTTP请求消息的请求包括以下格式:

请求线(请求线),请求报头(报头),一个空行和请求数据四个部分。

版本请求线开始符号的方法,由空格与随后的请求URI和协议分离,沿。
Get请求例如,使用查尔斯检索的要求:

GET / 562fb1b。JPG HTTP / 1.1
主机IMG。mukewanG。
用户代理的Mozilla / 5.0(Windows NT的10。0; WOW64)为AppleWebKit / 537.36(KHTML,例如Gecko)铬/ 51.0。2704.106的Safari / 537.36
接受图片/ WEBP,图像/ / *; Q = 0.8
引荐
接受编码Gzip的,放气,SDCH
接受语言zh-,ZH; q = 0的。8
第一部分:请求行,用于说明访问资源的请求的类型,和HTTP版本使用。

GET请求类型GET,[/ 562fb1b。JPG]如要访问的资源时,线路描述的最后部分使用HTTP1。第1版。

II部分:请求头,请求线部分之后立即(ⅰ。e。,第一行),用于解释附加信息服务器要使用

来自第二行的请求头,HOST将是请求的目的地。用户代理,服务器端和客户端脚本可以访问它,这是浏览器检测逻辑的类型的重要依据。此信息由您的浏览器定义,并自动发送每个请求,等。

第三部分:空白行,一个空行回请求头是必需

即使第四请求数据部为空,空行必须。

其他数据请求的数据,也被称为主体,您可以添加任何的:第四部分。

该请求数据的例子是空。

实例POST请求,使用查尔斯抓取请求:

POST / HTTP1.1
主办:
用户代理:Mozilla的/ 4.0(patible; MSIE 6。0; Windows NT的5。1; SV1; 。CLR 2.0。; 。CLR 3.0。04506.648; 。CLR 3.5。)
内容类型:应用程序/ X-
内容长度:40
连接:保持活动

名称=专业%20Ajax与出版商=威利
第一部分:请求行,第一行是明确的岗位要求,并HTTP1。第1版。
II部分:请求头中,第二行至第六行。
第三部分:空白行,空行第七排。
第IV部分:请求数据,第八行。

响应于HTTP响应消息

一般情况下,服务器接收和处理请求发送后,客户端返回的HTTP响应消息。

HTTP响应也由四个部分组成,即:一个状态行,消息头,和空行响应于身体。

HTTP / 1.1 200 OK
日期:周五,2009年6点07分21秒格林尼治标准时间5月22日
内容类型:text / html的; 字符集= UTF-8

第I部分:状态行,通过HTTP协议的版本,状态代码,状态消息三个部分。

第一状态线的行为,(HTTP / 1.1)表示HTTP版本1。版本1,状态码200,状态消息(OK)

II部分:消息报头,用来说明一些附加信息到由客户端使用

消息头的第二和第三行为,
日期:日期和时间响应; 内容类型:指定MIME类型HTML(text / html的)的,编码类型是UTF-8

第三部分:空白行,需要在消息报头之后的空白行

第四部分:响应主体,服务器返回给客户端的文本信息。

响应文本后HTML部分空白行。

HTTP状态码

状态代码具有三个数字,响应的定义的类别的第一数量,分为五类:

1XX:指示信息 - 表示请求已被接收,则处理继续

2XX:成功 - 表示请求已经成功接收,理解,接受

3XX:重定向 - 要完成请求必须走得更远了一步

4XX:客户端错误 - 请求有语法错误或无法实现的请求

5XX:服务器端错误 - 服务器无法实现合法的请求

常见的状态代码:

200 OK //客户端请求成功
400错误的请求//客户端请求一个语法错误,它不能被服务器理解
401未经授权//未经授权的请求,则状态代码必须用报头字段被用于
403禁止//服务器收到请求,但拒绝提供服务
404未找到//请求资源不存在,例如:输入错误的网址
意外的错误500内部服务器错误//服务器发生
503服务器不可用//服务器目前无法处理客户端的请求,一段时间后可能会恢复正常
更多的状态码

HTTP请求的方法

标准的HTTP,HTTP请求可以使用各种请求方法。
HTTP1.0请求定义了三种方法:GET,POST和HEAD方法。
HTTP1.1种五个新的请求方法:OPTIONS,PUT,DELETE,TRACE,和CONNECT方法。

GET请求页面信息中指定,并返回实体主体。
HEAD类似的GET请求,但反应未在具体内容返回,获得头
POST提交数据处理请求发送到指定的资源(例如。g。,文件上传或提交表单)。包含在请求主体数据。POST请求可能导致建立新的资源和/或对现有资源的修改。
PUT取代从服务器传输到客户端的文档数据的具体内容。
DELETE请求服务器删除指定的页面。
CONNECT HTTP / 1.1个协议可以被预留用于向代理服务器涵道连接。
选项允许客户端查看服务器性能。
TRACE回声服务器接收请求,主要用于测试或诊断。
HTTP作品

HTTP协议定义了Web客户端如何请求从Web服务器和服务器的网页给客户端的网页。HTTP协议使用请求/响应模型。客户机向服务器发送一个请求分组,该请求分组包含一个请求的方法,URL,协议版本,报头和请求的数据请求。服务器响应状态线,包括协议版本响应,成功或错误的代码,所述服务器信息,响应标头的内容和响应数据。

以下是HTTP请求/响应的一个步骤:

1,客户端连接到Web服务器

HTTP客户端,通常是浏览器,Web服务器使用HTTP端口(默认为80)建立TCP套接字连接。E。G,

2,发送HTTP请求

发送TCP套接字文本,客户机请求消息发送到所述Web服务器,通过请求行的请求包,请求头,空行和请求数据4份。

3,服务器接受该请求并返回一个HTTP响应

Web服务器解析请求,找到所请求的资源。资源服务器写入TCP套接字的副本,通过客户端读取。从状态A响应行中,响应于所述头部,并且响应于数据4份空白行。

如图4所示,连接到TCP连接释放

当连接模式接近,服务器关闭TCP连接,客户端关闭连接被动释放TCP连接; 如果保持连接的连接模式,那么连接将维持一段时间,你可以继续接收的时间要求;

5,客户端浏览器解析HTML内容

客户端浏览器首先解决的状态行,见指示请求是否成功的状态码。然后分析每个响应头,响应报头通知的字符集的HTML文档和记录几个字节。客户端浏览器读取HTML响应数据,根据它的HTML语法格式化,并在浏览器窗口中显示的。

例如:键入在浏览器地址栏中的URL,然后按Enter键要经过以下过程:

1,浏览器请求的URL DNS服务器来解析对应的IP地址的域名;

如图2所示,IP地址,根据IP地址和默认端口80,并且服务器解析TCP连接的建立;

如图3所示,浏览器发出HTTP请求,如在第三数据发送到服务器的TCP三次握手报文的请求分组的读取的文件(对应于文件的后部URL的域名);

如图4所示,服务器响应浏览器请求,并且发送对应于浏览器的HTML文本;

5,释放TCP连接;

6,浏览器显示的HTML和文本内容;

GET和POST请求之间的差额##

GET请求

GET /书籍/?性别=人与名=专业HTTP / 1.1
主办:
用户代理:Mozilla的/ 5.0(视窗; U; Windows NT的5。1; EN-US; RV:1.7。6)
壁虎/火狐/ 1.0。1
连接:保持活动
注意最后一行是空白行

POST请求

POST / HTTP / 1.1
主办:
用户代理:Mozilla的/ 5.0(视窗; U; Windows NT的5。1; EN-US; RV:1.7。6)
壁虎/火狐/ 1.0。1
内容类型:应用程序/ X-
内容长度:40
连接:保持活动

名称=专业%20Ajax与出版商=威利
1,GET提交后,将请求的数据被附加到URL(即,数据被放置到HTTP协议头),以? 分割URL和发送数据,多个连接参数&; 例如:登录。行动?命名= hyddd&密码= idontknow&验证=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,因为它是传递,如果空间转换为+,如果中国/等字符,字符串直接为Base64,为获得:%E4%BD%A0%E5%A5%BD,其中在ASCII十六进制该符号的XX XX%。

POST提交:提交所述数据包被放置在HTTP分组的主体。红色刻字是在上面的例子中的实际数据传输

因此,提交的GET数据将显示在地址栏出来,POST提交,地址栏将不会改变

2,数据传输的大小:首先声明:HTTP协议不限制传输的数据的大小,HTTP协议规范不限制URL的长度。

存在于实际开发的限制是:

GET:有一个特定的浏览器和服务器的URL长度的限制,E。g。IE URL长度限制为2083个字节(2K + 35)。对于其他浏览器,如景观,火狐等。在理论上,没有长度的限制,该限制取决于操作系统的支持。

因此,对于时间GET提交,数据传输将被限制URL长度。

POST:由于不是通过URL值,理论上无限数据。然而,每个Web服务器的实际要求,将提交后的大小限制的数据,Apache的,IIS6都有自己的配置。

3,安全性

GET POST安全比安全。例如:以明文提交数据,用户名和密码的GET出现在URL,因为:(1)登录页面很可能是浏览器缓存; (2)其他人查看你的浏览器历史记录,以便其他人可以让您的帐号和密码,此外,利用GET也提交数据可能会导致跨站请求伪造攻击

4,HTTP GET,POST,SOAP协议上的HTTP运行

(1)得到:请求参数附加到URL作为键/值对序列(查询字符串)的
由网络浏览器和Web服务器限制的查询字符串的长度(如IE支持多达2048个字符),是不适合的大型数据集的同时传输,它是不是安全

(2)交:在HTTP报头发送(命名实体体)的不同部分的请求参数,用于发送信息的形式的这一部分,内容类型必须设置:应用/ X- urlencoded的。交的设计为支持在web表单字段中,使用其参数的用户作为键/值对发送。
但是:它不支持复杂数据类型,因为没有交的规则定义了数据传输的语义和配置。

(3)皂:它是一种特殊版本的HTTP POST,以下的特殊消息格式的XML
内容类型设置:文本/ XML的XML数据可以是任何。

HTTP协议定义了多种方式与服务器进行交互,有四种基本类型,即GET,POST,PUT,DELETE。描述一个URL地址在网络上的资源,以及HTTP GET,POST,PUT,DELETE对应于该资源检查,修改,添加,删除等操作4。我们最常见的是GET和POST。GET一般用于获取/查询资源信息,并用于更新邮政资源信息。

我们再来看看GET和POST之间的区别

提交将被放置URL,对GET数据后?参数&之间URL分割和传输数据连接时,如EditPosts。ASPX?名称= test1的&ID =。POST方法是在HTTP分组机构提交的数据。

GET提交的数据大小被限制(因为在URL的长度的浏览器限制)提交的POST方法,并且数据不限制。

GET要求使用请求。查询字符串得到一个变量的值,而POST方法通过请求。表格申请变量的值。

提交一个GET数据,通过GET提交数据时,它会带来安全问题,如登录页面,用户名和密码将出现在URL,如果页面可以被缓存或者其他人可以访问这台机器,你从历史可以记录获取用户ID和口令。

相关阅读

友情链接:

心经结缘 念佛 佛经大悲咒全文

|移动互联|大数据|电商|营销实战|网络营销|

苏ICP备18043316号    互联网思维网版权所有    网站地图