HTTP协议详解(博客园)

合集下载

http 协议详解

http 协议详解

http 协议详解HTTP协议详解。

HTTP(Hypertext Transfer Protocol)是一种用于传输超文本数据的应用层协议,它是万维网的数据通信基础。

在互联网上,客户端通过HTTP请求访问服务器上的资源,服务器接收请求并返回相应的数据。

本文将详细解析HTTP协议的工作原理、请求和响应的格式以及常见的状态码等内容。

首先,HTTP协议采用了客户端-服务器模式,客户端通常是浏览器,服务器则是存放网页资源的计算机。

当用户在浏览器中输入网址或点击链接时,浏览器会向服务器发送HTTP请求,请求特定的资源,比如网页、图片、视频等。

服务器接收到请求后,会根据请求的内容生成相应的数据,并通过HTTP响应返回给客户端,客户端再解析响应数据并展示给用户。

其次,HTTP请求由请求行、请求头部、空行和请求数据四个部分组成。

请求行包括请求方法(GET、POST等)、请求的URL和协议版本;请求头部包括一些附加的信息,比如客户端的信息、所需的数据类型等;空行用于分隔请求头部和请求数据;请求数据可以是表单数据、文件等。

而HTTP响应由状态行、响应头部、空行和响应数据四个部分组成。

状态行包括协议版本、状态码和状态消息;响应头部包括服务器的信息、响应数据类型等;空行用于分隔响应头部和响应数据;响应数据则是服务器返回的具体内容。

再者,HTTP协议中常见的状态码包括200(OK,请求成功)、404(Not Found,请求的资源不存在)、500(Internal Server Error,服务器内部错误)等。

状态码能够告知客户端当前请求的处理情况,帮助客户端进行下一步的操作。

此外,HTTP协议还支持持久连接、缓存、代理、认证等功能,以提高数据传输的效率和安全性。

最后,需要注意的是,HTTP协议是一种无状态协议,即每次的请求都是相互独立的,服务器不会保存客户端的状态信息。

为了解决这一问题,HTTP引入了Cookie和Session等机制,来实现客户端状态的保持。

http 协议

http 协议

http 协议http协议(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,由若干规则和标准组成,它将网页的HTML代码从服务器传输到客户端浏览器。

http协议的主要特点之一是无状态。

这意味着每个http请求都是独立的,服务器不会记住之前的请求或会话信息。

当客户端向服务器发送请求时,服务器只会根据请求的内容返回相应的数据,然后断开连接。

这种无状态的特点使得http协议具有快速、灵活、高效等优点。

http协议的通信过程通常包括以下几个步骤:1.客户端发起请求:客户端(通常是浏览器)向服务器发送http请求,请求的内容可以包括URL地址、请求方式(GET、POST等)、请求头部信息等。

2.服务器处理请求:服务器接收到请求后,根据请求的内容进行相应的处理,包括解析URL地址、处理请求头部信息、查询数据库等。

3.服务器返回响应:服务器处理完请求后,返回响应给客户端,响应的内容包括状态码、响应头部信息、响应体等。

4.客户端接收响应:客户端接收到服务器返回的响应后,根据响应的内容进行相应的操作,如渲染网页、下载文件等。

http协议采用明文传输,因此安全性较差。

为了解决这个问题,https协议应运而生。

https协议在http协议之上加入了ssl/tls协议,通过加密和认证机制,保障了通信的安全性。

尽管http协议的无状态特性使其具有一定的局限性,但它仍然是目前互联网最常用的协议之一。

http协议的设计简单、易于开发和实现,而且具有广泛的应用领域,涵盖了网页浏览、数据传输、文件下载、网站访问等方方面面。

无论是大型网站还是移动应用程序,都离不开http协议的支持。

最后,需要注意的是,http协议虽然在互联网中起到了非常重要的作用,但它仍然有一些缺点,比如在处理大量并发请求时效率较低,容易受到网络攻击等。

随着互联网的迅猛发展,未来的http协议可能会不断改进和演化,以满足不断变化的需求和挑战。

网络协议之HTTP协议详解

网络协议之HTTP协议详解

网络协议之HTTP协议详解HTTP协议是一种以客户端-服务器模式运行的协议。

它被广泛用于Web应用程序的通信,但它也可以用于其他应用程序。

本文将深入探讨HTTP协议的背景、特点、请求方法、响应码等。

一、HTTP协议的背景HTTP协议的出现是为了解决早期互联网上不同的计算机系统之间进行通信的问题。

随着互联网的不断发展,HTTP协议也逐渐发展。

最初的HTTP协议的版本是0.9,支持最基本的功能,仅能支持ASCII字符。

后来,HTTP/1.0和HTTP/1.1分别发布了,HTTP/2和HTTP/3也已发布。

二、HTTP协议的特点HTTP协议是一个无状态的协议,它不维护关于客户端的任何信息。

这意味着每个请求都是一个独立的请求,而服务器并不会将之前的请求和之后的请求联系在一起。

HTTP协议是基于请求和响应模式的,每个请求都会提示服务器执行一个特定的操作,并返回一个相应的响应。

HTTP协议是基于TCP协议的,这意味着它提供了面向连接的服务。

TCP协议在客户端和服务器之间建立了一个实际的连接,并负责可靠地传输数据。

此外,HTTP协议还支持各种不同的媒体类型,如文本、HTML、图像和音频等。

它使用统一资源标识符(URI)来标识请求的资源,将一个URL视为特定的URI,使用URI来表示资源的位置。

三、HTTP协议的请求方法HTTP协议定义了一些请求方法,也被称为动词。

以下是最常用的方法:1. GET:用于从服务器检索数据,这也是HTTP应用程序最常用的方法。

2. POST:用于向服务器发送数据创建或更新资源。

3. PUT:用于向服务器上传新资源或更新现有资源的内容。

4. DELETE:用于从服务器上删除指定的资源。

5. HEAD:与GET方法类似,但只检索响应首部的信息。

6. OPTIONS:用于检索特定资源所支持的HTTP方法列表。

四、HTTP协议的响应码HTTP协议规定了一套标准的响应码,以表示客户端请求在服务器端处理的结果。

HTTP协议详解

HTTP协议详解

HTTP 协议详解作者: 小坦克来源: 博客园发布时间: 2012-02-14 13:32 阅读: 1976 次原文链接全屏阅读[收藏]当今web程序的开发技术真是百家争鸣,, PHP, JSP,Perl, AJAX 等等。

无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要,因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。

也希望对大家的开发工作或者测试工作有所帮助。

使用Fiddler工具非常方便地捕获HTTP Request和HTTP Response, 关于Fiddler工具的用法,请看我另一篇博客[Fiddler 教程]阅读目录1什么是HTTP协议2Web服务器,浏览器,代理服务器3URL详解4HTTP协议是无状态的5HTTP消息的结构6Get和Post方法的区别7状态码8HTTP Request header9HTTP Response header10HTTP协议是无状态的和Connection: keep-alive的区别什么是HTTP协议协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器目前我们使用的是HTTP/1.1 版本Web服务器,浏览器,代理服务器当我们打开浏览器,在地址栏中输入URL,然后我们就看到了网页。

原理是怎样的呢?实际上我们输入URL后,我们的浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器,浏览器解析Response中的HTML,这样我们就看到了网页,过程如下图所示我们的Request 有可能是经过了代理服务器,最后才到达Web服务器的。

过程如下图所示代理服务器就是网络信息的中转站,有什么功能呢?1. 提高访问速度,大多数的代理服务器都有缓存功能。

HTTP协议简介

HTTP协议简介

HTTP协议简介一、背景介绍HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,它是互联网的基础协议之一。

HTTP协议的主要作用是规定了客户端和服务器之间进行通信的方式和规则,使得在互联网上的不同计算机之间能够进行数据的传输和交换。

二、协议版本HTTP协议有多个版本,其中最常用的版本是HTTP/1.1。

HTTP/1.1相对于之前的版本进行了一些改进,提高了性能和安全性。

三、协议结构HTTP协议采用客户端-服务器模式,客户端发送请求给服务器,服务器返回响应给客户端。

HTTP协议的请求和响应都由多个部分组成,包括起始行、首部字段和消息体。

1. 起始行起始行包含了请求或响应的基本信息,格式如下:- 请求起始行:方法 URL 协议版本例如:GET /index.html HTTP/1.1- 响应起始行:协议版本状态码状态短语例如:HTTP/1.1 200 OK2. 首部字段首部字段用来传递附加信息,包括请求首部字段和响应首部字段。

常见的首部字段有:- Host:指定请求的目标主机- User-Agent:标识客户端的信息- Content-Type:指定消息体的媒体类型- Content-Length:指定消息体的长度- Cookie:用于在客户端和服务器之间传递状态信息3. 消息体消息体包含了请求或响应的实际数据,可以是文本、图像、音频等不同类型的数据。

四、请求方法HTTP协议定义了多种请求方法,常用的有:1. GET:用于获取资源2. POST:用于提交数据3. PUT:用于更新资源4. DELETE:用于删除资源5. HEAD:类似于GET,但只返回头部信息,不返回实际数据6. OPTIONS:获取服务器支持的方法列表五、状态码HTTP协议定义了多种状态码,用于表示请求的处理结果。

常见的状态码有:1xx:信息性状态码,表示请求已接收,继续处理2xx:成功状态码,表示请求已成功处理3xx:重定向状态码,表示需要进一步操作以完成请求4xx:客户端错误状态码,表示请求有语法错误或请求无法实现5xx:服务器错误状态码,表示服务器在处理请求时发生错误六、连接管理HTTP协议默认使用短连接,即每个请求和响应都会建立一个新的连接。

HTTP协议各版本比较

HTTP协议各版本比较

HTTP协议各版本⽐较HTTP 优点1. 简单 HTTP 基本的报⽂格式为header + body,头部信息也是 key-value简单⽂本的形式。

2. 灵活和易于扩展 HTTP协议⾥的请求⽅法、状态码、头字段等都允许⾃定义和扩充;HTTP 由于是⼯作在应⽤层,它的下层可以随意变化,HTTPS 就是在 HTTP 与 TCP 层之间增加了 SSL/TLS 安全传输层,HTTP/3 甚⾄把 TCP 换成了UDP 的。

3. 应⽤⼴泛和跨平台 HTTP 的应⽤范围⾮常的⼴泛,具有跨平台的优越性。

HTTP的缺点1. ⽆状态双刃剑 ⽆状态的好处,服务器不记忆 HTTP 的状态,不需要额外的资源来记录状态信息,这能减轻服务器的负担,能够把更多的 CPU 和内存⽤来对外提供服务; ⽆状态的坏处,服务器没有记忆能⼒,在完成有关联性的操作时会⾮常⿇烦。

例如登录->添加购物车->下单->结算->⽀付,这系列操作都要知道⽤户的⾝份才⾏。

但服务器不知道这些请求是有关联的,每次都要问⼀遍⾝份信息。

对于⽆状态的问题可以⽤ Cookie 技术来解决,通过在请求和响应报⽂中写⼊ Cookie 信息来控制客户端的状态。

在客户端第⼀次请求后,服务器会下发⼀个装有客户信息的「⼩贴纸」,后续客户端请求服务器的时候,带上「⼩贴纸」,服务器就能认得了。

2. 明⽂传输双刃剑 明⽂意味着在传输过程中的信息是可阅读的,通过浏览器的 F12 控制台或 Wireshark 抓包都可以直接⾁眼查看,为我们调试⼯作带了极⼤的便利性。

在传输的漫长的过程中,信息的内容很容易就能被窃取。

3. 不安全 通信使⽤明⽂,内容可能会被窃听;不验证通信⽅的⾝份,可能遭冒充;⽆法证明报⽂的完整性,可能遭篡改。

HTTP1.1的性能HTTP 协议是基于 TCP/IP,并且使⽤了「请求 - 应答」的通信模式,所以性能的关键就在这两点⾥。

1. 长连接 早期 HTTP/1.0 性能上的⼀个很⼤的问题,那就是每发起⼀个请求,都要新建⼀次 TCP 连接,增加了通信开销。

什么是HTTP协议?HTTP协议的基本特点和发展历程

什么是HTTP协议?HTTP协议的基本特点和发展历程

什么是HTTP协议?HTTP协议的基本特点和发展历程上期文章我给大家介绍了一些关于MQTT协议的基础知识,今天我们来了解另一个应用层协议——HTTP协议。

什么是HTTP协议?HTTP(Hyper (Te)xt Transfer Protocol 超文本传输协议),是一个用于传输超文本文档的应用层协议,与MQTT一样,是基于TCP/IP协议之上的通讯协议,它是为Web浏览器与Web服务器之间的(通信)而设计的。

HTTP协议基本特点:(1)基于TCP协议,应用层协议(2)传输一些HTML、CSS、(Java)Script内容(3)请求及响应(4)简单可扩展:语义简单且可在请求头自定义内容(5)无状态:请求之间是相互孤立的HTTP协议发展HTTP协议到目前为止所有的版本可以分为HTTP 0.9、HTTP 1.0、HTTP 1.1、HTTP 2.0、HTTP 3.0,其中普遍应用的是HTTP 1.1版本,正在推进HTTP 2.0版本,以及未来的HTTP 3.0版本,今天主要介绍这三个版本。

「HTTP 1.1 」HTTP代表超文本传输协议,这是一种自1989年推出以来用于通过万维网进行通信的应用程序协议。

HTTP是互联网上的计算机和服务器用来请求和发送信息的一种方法。

HTTP 1.1是标准化的协议,HTTP 1.1消除了大量歧义内容并引入了多项改进。

HTTP利用一些简单的方法在计算机之间发送和接收信息。

两种最常见的方法是:获取和发布。

当客户端计算机与服务器通信时,它会发送命令来指示服务器下一步该做什么。

作为响应,服务器通常会将资源(如HTML 网页)返回给客户端计算机。

「HTTP 2.0 」HTTP 2.0是HTTP协议的第一个主要修订版,通过实施各种优化技术来减少网页加载延迟。

HTTP 2.0由IETF(互联网工程任务组)于2023年5月发布,旨在成为与所有可用Web浏览器兼容的标准通信方法。

主要特点:(1)HTTP/2 连接都是永久的,而且仅需要每个来源一个连接。

HTTP协议培训详解

HTTP协议培训详解

HTTP协议培训详解HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的通信协议,是互联网上应用最为广泛的协议之一。

本文将详细介绍HTTP协议的基本原理、工作流程以及常见应用。

一、HTTP协议概述HTTP协议是在Web开发中非常重要的一部分,它定义了Web客户端(如浏览器)和Web服务器之间的通信规则。

HTTP协议属于应用层协议,基于TCP/IP协议栈进行数据传输。

二、HTTP的工作原理HTTP协议主要由客户端和服务器两部分组成。

客户端发送HTTP请求到服务器,服务器根据请求返回相应的HTTP响应。

具体工作流程如下:1.客户端发送HTTP请求给服务器;2.服务器接收到请求后解析请求头,并根据请求内容进行相应的处理;3.服务器返回HTTP响应给客户端;4.客户端接收到响应后解析响应头,并根据响应内容进行后续处理。

三、HTTP请求方法HTTP协议定义了不同的请求方法,常用的有以下几种:1.GET:请求获取指定资源;2.POST:向指定资源提交数据进行处理请求;3.PUT:请求服务器存储一个资源,并将其标识符存储在请求URI 中;4.DELETE:请求服务器删除指定的资源;5.HEAD:请求获取资源的响应消息头,而不是整个资源。

四、HTTP响应状态码HTTP响应中包含一个状态码,用以标识服务器对请求的处理结果。

常见的状态码包括:1.1xx:表示请求已接收,继续处理;2.2xx:表示请求已成功处理;3.3xx:表示重定向,需要进一步操作才能完成请求;4.4xx:表示客户端错误,如请求的资源不存在或无权限访问;5.5xx:表示服务器错误,如服务器出现故障无法处理请求。

五、HTTP协议的特点1.简单快速:HTTP协议使用简单,实现相对容易,传输效率较高;2.灵活:HTTP协议允许传输任意类型的数据,无论图片、音频、视频或文本都可以在HTTP协议下传输;3.无连接:即每次请求都是独立的,服务器不会保留与客户端的连接,节省服务器资源;4.无状态:即服务器不会记录与客户端的通信状态,每次请求都是独立的,服务器无法知道上一次请求的内容。

http协议详解

http协议详解

http协议详解HTTP协议(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,它是计算机与计算机之间进行通信的一种规范。

HTTP协议是互联网的基础协议之一,它在Web浏览器和Web服务器之间进行数据的传输和交换,是Web应用的核心。

HTTP协议的主要特点包括以下几点:1. 简洁性:HTTP协议的信息传输以文本的形式进行,每个请求和响应都是基于文本的报文进行传输,使得它的传输效率较低。

但同时也极大地简化了协议的设计和实现。

2. 无状态性:HTTP协议是一种无状态协议,即服务器不会记录之前的请求和响应的信息。

这就需要客户端每次请求时都需要提供包含足够信息的完整请求,服务器完全不关心之前的请求是什么样的。

3. 可扩展性:HTTP协议通过请求方法、响应状态码、首部字段等实现了对协议的扩展,使得它可以适应不同的需求和场景。

HTTP协议的通信流程如下:1. 客户端发起请求:客户端使用HTTP协议生成一个请求报文,并将请求报文发送给服务器。

2. 服务器响应请求:服务器接收到请求报文后,生成一个响应报文,并将其发送给客户端。

3. 数据传输:客户端和服务器通过TCP协议进行数据传输,在传输过程中将请求和响应报文进行分割、压缩等优化处理。

4. 请求结束:服务端响应完成后,请求结束,断开TCP连接。

HTTP协议的请求方法包括GET、POST、PUT、DELETE等,每种请求方法对应不同的操作和语义。

其中GET方法用于请求服务器上的资源,POST方法用于向服务器提交数据,PUT方法用于存储资源,DELETE方法用于删除资源。

HTTP协议的请求和响应报文由请求行、首部字段和实体三部分组成。

请求行由请求方法、请求URI和HTTP协议版本组成,它描述了客户端向服务器请求的信息。

首部字段用于传递附加信息,如User-Agent、Accept-Language等。

实体用于传输请求或响应的具体内容。

HTTP协议详解浏览器与服务器之间的通信规范

HTTP协议详解浏览器与服务器之间的通信规范

HTTP协议详解浏览器与服务器之间的通信规范HTTP协议详解:浏览器与服务器之间的通信规范HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,它定义了浏览器与服务器之间进行通信的规范。

通过HTTP协议,浏览器可以向服务器请求资源,并且服务器可以将这些资源传送给浏览器。

本文将详细解析HTTP协议,包括其请求与响应的格式、常见的请求方法、状态码及其含义以及HTTP的演进历程。

一、请求与响应的格式HTTP请求由浏览器发起,而HTTP响应是由服务器返回给浏览器的。

下面分别介绍请求和响应的格式。

1. 请求格式HTTP请求由请求行、请求头和请求体组成。

请求行包含请求方法、目标URL和协议版本。

常见的请求方法包括GET、POST、PUT、DELETE等,用于指定对资源的操作方式。

请求头包含了一些关于请求的附加信息,如Accept、User-Agent、Cookie等。

请求体可选,用于传递一些额外的数据,一般在POST请求中使用。

2. 响应格式HTTP响应由响应行、响应头和响应体组成。

响应行包含协议版本、状态码和状态短语。

状态码用于表示服务器对请求的处理结果,如200表示成功,404表示资源未找到。

响应头包含了一些关于响应的附加信息,如Server、Content-Type、Content-Length等。

响应体包含了服务器返回的实际数据。

二、常见的请求方法HTTP协议定义了几种常见的请求方法,下面介绍一些常用的方法:1. GET方法GET方法是最常见的HTTP请求方法之一,它用于请求指定的资源。

通过GET请求,浏览器可以向服务器获取资源的信息,但不对服务器上的资源进行任何修改操作。

2. POST方法POST方法用于向服务器发送数据,通常用于提交表单或者上传文件。

通过POST请求,浏览器将数据发送给服务器,并期望服务器对这些数据进行保存或处理。

3. PUT方法PUT方法用于向服务器上传文件。

0xx_HTTP协议

0xx_HTTP协议

0xx_HTTP协议第⼀章前⾔我们现实⽣活中的协议是指相互遵守的规定,单⽅⾯违背,协议不成⽴;⽽在互联⽹交互的过程中,也存在这许多协议,例如FTP、HTTP、STMP、TCP/IP等。

⽽HTTP协议则是web服务器和web客户端达成的⼀种可靠的数据传输协议,通过HTTP可以从遍布全世界的Web服务器上将JPEG图⽚,HTML页⾯,⽂本⽂件,MPEG电影,WAV⾳频⽂件和其他资源信息块迅速、便捷、可靠地搬移到⼈们桌⾯上的Web浏览器上去。

它能够确保数据在传输的过程当中不会损坏或者产⽣混乱。

这样,对⽤户来说是个好事,同样对internet应⽤的开发⼈员来说也是⼀件好事。

因为我们在开发过程中也不需要担⼼⾃⼰的页⾯和数据会在传输过程中发⽣破坏和畸变了。

第⼆章 WEB客户端和服务器Web内容都是存储在Web服务器上的。

Web服务器所使⽤的是HTTP协议,因此经常会被称为HTTP服务器。

这些HTTP服务器存储了因特⽹中的数据,如果HTTP客户端发出请求的话,它们会提供数据。

客户端向服务器发送HTTP请求,服务器会在HTTP响应中回送所请求的数据。

那么⼀次请求和响应的过程中发⽣了什么?HTTP属于⽆状态链接协议,即是限制每次连接只处理⼀个请求。

服务器处理完客户的请求,并收到客户的应答后,即断开连接。

采⽤这种⽅式可以节省传输时间和服务器资源。

当然也有有状态链接,那就是我们常⽤的QQ。

H5新增的特性中也包含Websocket帮助我们构建长链接。

第三章资源和媒体类型web服务器是web资源的宿主,⽽web资源就是我们常见的web内容的源头,最简单的web资源就是我们服务器中的静态⽂件:⽂本⽂件,HTML⽂档,JPEG图⽚⽂件,mp4⽂件等等。

当然web资源也可以是动态⽣成的,类似搜索引擎⽣成的页⾯,qq空间的动态等,总之,所有类型的内容来源都是资源。

因特⽹上有数千种不同类型的数据类型,HTTP在传输的过程中为每个传输的数据都打上了名为MIME类型的数据类型标签,描述并标记多媒体内容。

HTTP协议详解

HTTP协议详解

HTTP协议详解HTTP(Hypertext Transfer Protocol)是一种在计算机网络中广泛使用的应用层协议,用于在Web浏览器和Web服务器之间传输超文本(例如HTML)和其他资源。

HTTP是一个无状态的协议,每个请求都是相互独立的,并且服务器不会保留任何关于之前请求的状态信息。

HTTP协议的工作原理可以概括为:客户端发送一个HTTP请求到服务器,服务器响应该请求并返回结果。

这个过程通常是通过TCP/IP协议完成的。

HTTP使用一种称为URL(Uniform Resource Locator)的标准来指定资源的地址。

1. 请求方法(Request Method):客户端向服务器发送请求时,指定要执行的操作的方法。

最常见的方法有GET(获取资源)、POST(提交数据)和HEAD(获取报文首部)。

2. 状态码(Status Code):服务器向客户端返回的响应中,包含一个三位数的状态码,用于表示请求的处理结果。

常见的状态码有200(成功)、404(未找到)和500(服务器内部错误)。

3. 报文首部(Header):在HTTP协议的请求和响应报文中,报文首部包含了一些元数据,用于描述报文的属性和附加信息。

例如,报文头中可能包含Accept、Content-Type和Authorization等字段。

4. 报文主体(Body):HTTP协议请求和响应报文中的主要内容都在报文主体中。

例如,客户端的POST请求中的表单数据和服务器响应的HTML页面都包含在报文主体中。

1.简洁和灵活:HTTP协议的设计目标是简单易用、易实现,因此它的报文格式也非常简洁。

同时,HTTP协议也非常灵活,允许使用不同的传输协议和身份验证机制。

2. 无状态:由于HTTP协议的无状态性,服务器不会保留之前请求的任何状态信息。

这就需要客户端发送每个请求时都包含所有必要的信息。

为了解决这个问题,HTTP引入了Cookie和Session等机制。

http协议详解

http协议详解

http协议详解HTTP(Hypertext Transfer Protocol)是一种用于传输数据的标准协议,它是互联网的基础协议之一。

HTTP的主要用途是在客户端和服务器之间传输Web页面和数据。

下面,我们来深入了解HTTP协议的详解。

HTTP协议是一个无状态的协议,这意味着每个请求都是单独的,服务器不会记住前面的请求。

当客户端向服务器发送请求时,它会打包成一个HTTP请求报文,包括请求行、请求头、空行和请求体。

在请求行中,包含了请求的方法、请求的URL和HTTP版本,例如:GET /index.html HTTP/1.1其中,GET表示该请求使用的方法,/index.html是请求的URL,HTTP/1.1是使用的HTTP版本。

请求头中包含了请求的一些元数据,例如接受的数据类型、接受的字符集、Cookie等。

空行隔开请求头和请求体。

HTTP协议还有许多其他的请求方法,包括POST、PUT、DELETE、HEAD等,这些方法可以根据不同的场景来选择。

服务器在接收到客户端的请求后,会返回一个HTTP响应报文,包括状态行、响应头、空行和响应体。

在状态行中,包含了HTTP版本、状态码和状态信息,例如:HTTP/1.1 200 OK其中,HTTP/1.1表示使用的HTTP版本,200表示响应的状态码,OK表示响应信息。

响应头中包含了响应的一些元数据,例如响应的数据类型、响应的字符集、Cookie等。

空行隔开响应头和响应体。

响应体中包含了实际的数据,例如HTML页面、图片、视频等。

HTTP协议还支持通过Cookie来保持客户端的状态,以便让用户在访问同一个服务器时保持自己在浏览时的状态。

总之,HTTP协议是互联网中应用最广泛的协议之一,它提供了一种标准化的方式来传输Web页面和数据。

通过深入了解HTTP协议,我们可以更好地了解Web应用程序的工作原理。

HTTP协议详解(真的很经典)

HTTP协议详解(真的很经典)

HTTP协议详解(真的很经典)概要:HTTP是⼀个属于应⽤层的⾯向对象的协议,由于其简捷、快速的⽅式,适⽤于分布式超媒体信息系统| |⽬录123451引⾔HTTP是⼀个属于应⽤层的⾯向对象的协议,由于其简捷、快速的⽅式,适⽤于分布式超媒体信息系统。

它于1990年提出,经过⼏年的使⽤与发展,得到不断地完善和扩展。

⽬前在WWW中使⽤的是HTTP/1.0的第六版,HTTP/1.1的规范化⼯作正在进⾏之中,⽽且HTTP-NG(Next Generation of HTTP)的建议已经提出。

HTTP协议的主要特点可概括如下:1.⽀持客户/服务器模式。

2.简单快速:客户向服务器请求服务时,只需传送请求⽅法和路径。

请求⽅法常⽤的有GET、HEAD、POST。

每种⽅法规定了客户与服务器联系的类型不同。

由于HTTP协议简单,使得HTTP服务器的程序规模⼩,因⽽通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。

正在传输的类型由Content-Type加以标记。

4.⽆连接:⽆连接的含义是限制每次连接只处理⼀个请求。

服务器处理完客户的请求,并收到客户的应答后,即断开连接。

采⽤这种⽅式可以节省传输时间。

5.⽆状态:HTTP协议是⽆状态协议。

⽆状态是指协议对于事务处理没有记忆能⼒。

缺少状态意味着如果后续处理需要前⾯的信息,则它必须重传,这样可能导致每次连接传送的数据量增⼤。

另⼀⽅⾯,在服务器不需要先前信息时它的应答就较快。

2⼀、HTTP协议详解之URL篇http(超⽂本传输协议)是⼀个基于请求与响应模式的、⽆状态的、应⽤层的协议,常基于TCP的连接⽅式,HTTP1.1版本中给出⼀种持续连接的机制,绝⼤多数的Web开发,都是构建在HTTP协议之上的Web应⽤。

HTTP URL (URL是⼀种特殊类型的URI,包含了⽤于查找某个资源的⾜够的信息)的格式如下:http表⽰要通过HTTP协议来定位⽹络资源;host表⽰合法的Internet主机域名或者IP地址;port指定⼀个端⼝号,为空则使⽤缺省端⼝80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个⼯作浏览器⾃动帮我们完成。

http协议是什么协议

http协议是什么协议

http协议是什么协议HTTP协议是一种基于应用层的协议,用于在客户端和服务器之间传输超文本数据。

HTTP协议全称为超文本传输协议(HyperText Transfer Protocol),它是互联网上应用最为广泛的一种协议,被用于在Web浏览器和Web服务器之间进行数据传输。

HTTP协议是建立在TCP/IP协议之上的,它通过在客户端与服务器之间建立连接,并通过请求-响应的方式来传输数据。

在HTTP协议中,客户端向服务器发送一个请求,服务器收到请求后做出相应的响应,并将响应返回给客户端。

HTTP协议的工作原理如下:1. 客户端发起请求:当用户在浏览器中输入网址或点击链接时,浏览器会组装一个HTTP请求,并通过底层的TCP/IP协议将请求发送到服务器。

请求通常包含一个请求行、请求头和请求主体。

2. 服务器处理请求:服务器接收到请求后,需要根据请求的内容来进行相应的处理。

这可能包括读取数据库、操作文件或者执行计算等。

服务器还会生成一个HTTP响应,并将响应的内容和相关的HTTP头信息发送给客户端。

3. 服务器返回响应:服务器生成的HTTP响应包括一个响应行、响应头和响应主体。

响应行包含了响应的状态码和描述,用来告诉客户端服务器处理请求的结果。

响应头包含了一些元数据,如响应的日期、内容类型等。

响应主体包含了服务器返回给客户端的具体数据。

4. 客户端显示响应:当客户端接收到服务器的响应后,它会根据响应头中的内容类型来判断如何显示响应。

如果是HTML内容,客户端会将响应解析为可视化的内容,然后显示在用户的浏览器窗口中。

HTTP协议具有以下特点:1. 灵活性:HTTP支持各种不同的数据格式和传输方式,如文本、图像、视频等。

这使得它在互联网上广泛应用。

2. 简单性:HTTP协议使用简单,易于实现和理解。

它的请求-响应模型使得客户端和服务器之间的交互简单明了。

3. 无状态性:HTTP协议是无状态的,即服务器不会在多个请求之间保存客户端的状态信息。

http协议解析

http协议解析

http协议解析HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种用于传输超文本数据的协议。

它是Web应用程序交互的基础,通过HTTP协议,浏览器能够与服务器进行通信,实现资源的获取和数据的传输。

HTTP协议的请求和响应模型是它的核心内容。

客户端通过发送一个HTTP请求到服务器来获取资源。

请求由一个请求行、请求头和请求体组成。

请求行主要包含方法、地址和版本,其中方法定义了客户端对资源的操作类型,地址指明了资源的位置,而版本定义了HTTP协议的版本。

请求头用于携带请求的附加信息,如用户代理(User-Agent)表示浏览器的身份。

请求体是一些可选的数据,例如表单数据或上传的文件。

当服务器接收到请求后,会根据请求的方法和地址来进行相应的处理。

服务器会发送一个HTTP响应给客户端,响应由一个状态行、响应头和响应体组成。

状态行包含一个状态码,用于表示请求的处理结果,如200表示成功,404表示资源未找到。

响应头包含响应的一些附加信息,如内容类型(Content-Type)指示响应的数据类型。

响应体是服务器返回的实际数据,例如HTML页面或者图片。

在HTTP协议中,还定义了不同的请求方法。

其中最常见的是GET和POST方法。

GET方法用于获取资源,通过在URL中添加查询字符串来传递参数。

POST方法用于传递数据,将数据放在请求体中,可以传递更多的数据且相对安全。

另外还有PUT和DELETE方法,分别用于更新和删除资源。

这些不同的方法使得HTTP协议能够满足不同的需求。

除了基本的请求和响应之外,HTTP协议还有一些其他的特性。

例如,缓存机制是通过设置缓存头来实现的,可以减少请求的重复发送。

Cookie和Session可以用来进行用户身份验证和状态管理。

HTTPS则是对HTTP进行了加密和身份验证,更加安全。

总结来说,HTTP协议是用于传输超文本数据的协议,通过HTTP协议,浏览器能够与服务器进行通信。

【HTTP协议】---HTTP协议详解

【HTTP协议】---HTTP协议详解

【HTTP协议】---HTTP协议详解HTTP协议详解⼀.HTTP简介1.HTTP协议,即超⽂本传输协议(Hypertext transfer protocol)。

是⼀种详细规定了浏览器和万维⽹(WWW = World Wide Web)服务器之间互相通信的规则,通过因特⽹传送万维⽹⽂档的数据传送协议。

2.HTTP协议作为TCP/IP模型中应⽤层的协议也不例外。

HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。

如下图:3.HTTP是⼀个应⽤层协议,由请求和响应构成,是⼀个标准的客户端服务器模型。

HTTP是⼀个⽆状态的协议。

4.HTTP默认的端⼝号为80,HTTPS的端⼝号为443。

5.浏览⽹页是HTTP的主要应⽤,但是这并不代表HTTP就只能应⽤于⽹页的浏览。

HTTP是⼀种协议,只要通信的双⽅都遵守这个协议,HTTP就能有⽤武之地。

⽐如咱们常⽤的QQ,迅雷这些软件,都会使⽤HTTP协议(还包括其他的协议)。

⼆.HTTP特点1、简单快速:客户向服务器请求服务时,只需传送请求⽅法和路径。

由于HTTP协议简单,使得HTTP服务器的程序规模⼩,因⽽通信速度很快。

2、灵活:HTTP允许传输任意类型的数据对象。

正在传输的类型由Content-Type加以标记。

3、HTTP 0.9和1.0使⽤⾮持续连接:限制每次连接只处理⼀个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。

HTTP 1.1使⽤持续连接:不必为每个web对象创建⼀个新的连接,⼀个连接可以传送多个对象,采⽤这种⽅式可以节省传输时间。

4、⽆状态:HTTP协议是⽆状态协议。

⽆状态是指协议对于事务处理没有记忆能⼒。

缺少状态意味着如果后续处理需要前⾯的信息,则它必须重传,这样可能导致每次连接传送的数据量增⼤。

另⼀⽅⾯,在服务器不需要先前信息时它的应答就较快。

5、⽀持B/S及C/S模式。

HTTP协议中的长连接和短连接(keep-alive状态)

HTTP协议中的长连接和短连接(keep-alive状态)

HTTP协议中的长连接和短连接(keep-alive状态)什么是长连接长连接还是短连接相⽐于短连接,长连接更节省资源。

如果每发送⼀条消息就要创建链路、发起握⼿认证、关闭链路释放资源,会损耗⼤量的系统资源。

长连接只在⾸次创建时或者链路断连重连才创建链路,链路创建成果之后服务提供者和消费者会通过业务消息和⼼跳维系链路,实现多消息复⽤同⼀个链路节省资源。

HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST 包、不四次握⼿),等待在同域名下继续⽤这个通道传输数据;相反的就是短连接。

 HTTP⾸部的Connection: Keep-alive是HTTP1.0浏览器和服务器的实验性扩展,当前的HTTP1.1 RFC2616⽂档没有对它做说明,因为它所需要的功能已经默认开启,⽆须带着它,但是实践中可以发现,浏览器的报⽂请求都会带上它。

如果HTTP1.1版本的HTTP请求报⽂不希望使⽤长连接,则要在HTTP请求报⽂⾸部加上Connection: close。

《HTTP权威指南》提到,有部分古⽼的HTTP1.0 代理不理解Keep-alive,⽽导致长连接失效:客户端-->代理-->服务端,客户端带有Keep-alive,⽽代理不认识,于是将报⽂原封不动转给了服务端,服务端响应了Keep-alive,也被代理转发给了客户端,于是保持了“客户端-->代理”连接和“代理-->服务端”连接不关闭,但是,当客户端第发送第⼆次请求时,代理会认为当前连接不会有请求了,于是忽略了它,长连接失效。

书上也介绍了解决⽅案:当发现HTTP版本为1.0时,就忽略Keep-alive,客户端就知道当前不该使⽤长连接。

其实,在实际使⽤中不需要考虑这么多,很多时候代理是我们⾃⼰控制的,如Nginx代理,代理服务器有长连接处理逻辑,服务端⽆需做patch处理,常见的是客户端跟Nginx代理服务器使⽤HTTP1.1协议&长连接,⽽Nginx代理服务器跟后端服务器使⽤HTTP1.0协议&短连接。

HTTP协议(一看就会)

HTTP协议(一看就会)

HTTP协议(⼀看就会)⼀、什么是HTTP?答:HTTP(Hyper Text Transfer Protocol)(超⽂本传输协议)⼆、什么是超⽂本?答:就是超越了普通⽂本的⽂本,它是⽂字、图⽚、视频等的混合体。

例:HTML三、什么是传输?答:传输是⼀种传输电学消息(连带经过媒介的辐射能现象)的⾏为。

消息可以是⼀串或者⼀组,⽐如,通常也称为或者。

四、什么是协议?答:协议是通信计算机双⽅必须共同遵从的⼀组约定。

例如怎么样建⽴连接、怎么样互相识别等。

只有遵守这个约定,计算机之间才能相互通信交流。

五、什么是统⼀资源定位符(URL)?六、HTTP 消息结构1、请求报⽂结构(1)、语法请求⽅法|空格|URL|空格|协议版本|回车符|换⾏符头部字段名|:|值|回车符|换⾏符...回车符|换⾏符请求数据(2)、例⼦:发送post请求到index.phpname=”zisay”&qq=”15593838”2、响应报⽂结构(1)、语法协议版本|空格|状态码|空格|原因短语|回车符|换⾏符头部字段名|:|值|回车符|换⾏符...回车符|换⾏符响应正⽂(2)、例⼦:响应index.phpHTTP/1.1 200 OKDate: Sun, 23 Jan 2022 03:27:46 GMTServer: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02 X-Powered-By: PHP/7.4.3Keep-Alive: timeout=5, max=99Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8七、HTTP 请求⽅法说明1、HTTP/1.0序号⽅法说明1GET请求指定的页⾯信息,并返回实体主体。

HTTP协议几个版本的理解

HTTP协议几个版本的理解

HTTP协议⼏个版本的理解HTTP (HyperText transfer protocol)超⽂本传输协议Http是⼀个应⽤层协议,基于TCP协议(传输层)之上,规定WWW服务器浏览器之间信息传递规范。

使⽤的默认端⼝号为80端⼝。

Http的版本演化http 0.9:最初的版本,只有⼀个命令GET,服务器只能回应HTML格式字符串。

http 1.0:引⼊了新的命令POST和HEAD(http数据头部)命令每个TCP连接只能发送⼀个请求,发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建⼀个连接头信息是 ASCII 码,后⾯数据可为任何格式。

服务器回应时会告诉客户端,数据是什么格式,即Content-Type字段的作⽤。

这些数据类型总称为MIME即多⽤途互联⽹邮件扩展,每个值包括⼀级类型和⼆级类型,预定义的类型,也可⾃定义类型, 常见Content-Type值:text/xml image/jpeg audio/mp3http 1.1:新增⽅法:PUT、PATCH、OPTIONS、DELETE引⼊了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复⽤,不⽤声明Connection: keep-alive。

对于同⼀个域名,⼤多数浏览器允许同时建⽴6个持久连接引⼊了管道机制,即在同⼀个TCP连接⾥,客户端可以同时发送多个请求,进⼀步改进了HTTP协议的效率同⼀个TCP连接⾥,所有的数据通信是按次序进⾏的。

服务器只能顺序处理回应,前⾯的回应慢,会有许多请求排队,造成"队头堵塞"(Head-of-line blocking)为避免上述问题,两种⽅法:⼀是减少请求数,⼆是同时多开持久连接其实http1.1还是有些问题没有解决的1.传输数据是明⽂2.header头部数据太长3.每次传输还是要重新连接4.server不能主动push这样就推动了http2.0的出现Http2.0HTTP2.0是SPDY(⾕歌公司研发的https的⼀种协议)的升级版1.头信息和数据体都是⼆进制,称为头信息帧和数据帧2.复⽤TCP连接,在⼀个连接⾥,客户端和浏览器都可以同时发送多个请求或回应,且不⽤按顺序⼀⼀对应,避免了“队头堵塞“,此双向的实时通信称为多⼯(Multiplexing)3.引⼊头信息压缩机制(header compression),头信息使⽤gzip或compress压缩后再发送;客户端和服务器同时维护⼀张头信息表,所有字段都会存⼊这个表,⽣成⼀个索引号,不发送同样字段,只发送索引号,提⾼速度4.HTTP/2 允许服务器未经请求,主动向客户端发送资源,即服务器推送(server push)⾯试题:http1.0和http1.1的区别1.长连接HTTP 1.1⽀持长连接(PersistentConnection)和请求的流⽔线(Pipelining)处理,在⼀个TCP连接上可以传送多个HTTP请求和响应,减少了建⽴和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,弥补了HTTP1.0每次请求都要创建连接的缺点2.缓存处理在HTTP1.0中主要使⽤header⾥的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引⼊了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略3.带宽优化和⽹络连接的使⽤HTTP1.0中,存在⼀些浪费带宽的现象,例如:客户端只是需要某个对象的⼀部分,⽽服务器却将整个对象送过来了,并且不⽀持断点续传功能,HTTP1.1则在请求头引⼊了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),⽅便了开发者⾃由的选择以便于充分利⽤带宽和连接4.错误通知的管理在HTTP1.1中新增24个状态响应码,如409(Conflict)表⽰请求的资源与资源当前状态冲突;.410(Gone)表⽰服务器上的某个资源被永久性的删除5.Host头处理在HTTP1.0中认为每台服务器都绑定⼀个唯⼀的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HTTP 协议详解当今web程序的开发技术真是百家争鸣,, PHP, JSP,Perl, AJAX 等等。

无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要,因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。

也希望对大家的开发工作或者测试工作有所帮助。

使用Fiddler工具非常方便地捕获HTTP Request和HTTP Response, 关于Fiddler工具的用法,请看我另一篇博客[Fiddler 教程]阅读目录1什么是HTTP协议2Web服务器,浏览器,代理服务器3URL详解4HTTP协议是无状态的5HTTP消息的结构6Get和Post方法的区别7状态码8HTTP Request header9HTTP Response header10HTTP协议是无状态的和Connection: keep-alive的区别什么是HTTP协议协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器目前我们使用的是HTTP/1.1 版本Web服务器,浏览器,代理服务器当我们打开浏览器,在地址栏中输入URL,然后我们就看到了网页。

原理是怎样的呢?实际上我们输入URL后,我们的浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器,浏览器解析Response中的HTML,这样我们就看到了网页,过程如下图所示我们的Request 有可能是经过了代理服务器,最后才到达Web服务器的。

过程如下图所示代理服务器就是网络信息的中转站,有什么功能呢?1. 提高访问速度,大多数的代理服务器都有缓存功能。

2. 突破限制,也就是翻墙了3. 隐藏身份。

URL详解URL(Uniform Resource Locator) 地址用于描述一个网络上的资源,基本格式如下schema://host[:port#]/path/.../[;url-params][?query-string][#anchor] scheme 指定低层使用的协议(例如:http, https, ftp)host HTTP服务器的IP地址或者域名port# HTTP服务器的默认端口是80,这种情况下端口号可以省略。

如果使用了别的端口,必须指明,例如:8080/ path 访问资源的路径url-paramsquery-string 发送给http服务器的数据anchor- 锚URL 的一个例子/sj/test;id=8079?name=sviergn&x=true#stuff Schema: httphost: path: /sj/testURL params: id=8079Query String: name=sviergn&x=trueAnchor: stuffHTTP协议是无状态的http协议是无状态的,同一个客户端的这次请求和上次请求是没有对应关系,对http 服务器来说,它并不知道这两个请求来自同一个客户端。

为了解决这个问题,Web程序引入了Cookie机制来维护状态.HTTP消息的结构先看Request 消息的结构,Request 消息分为3部分,第一部分叫请求行,第二部分叫http header, 第三部分是body. header和body之间有个空行,结构如下图第一行中的Method表示请求方法,比如"POST","GET",Path-to-resoure表示请求的资源,Http/version-number 表示HTTP协议的版本号当使用的是"GET" 方法的时候,body是为空的比如我们打开博客园首页的request 如下GET / HTTP/1.1Host: 我们用Fiddler 捕捉一个博客园登录的Request 然后分析下它的结构,在Inspectors tab下以Raw的方式可以看到完整的Request的消息,如下图我们再看Response消息的结构,和Request消息的结构基本一样。

同样也分为三部分,第一部分叫request line, 第二部分叫request header,第三部分是body. header和body之间也有个空行,结构如下图HTTP/version-number表示HTTP协议的版本号,status-code 和message 请看下节[状态代码]的详细解释.我们用Fiddler 捕捉一个博客园首页的Response然后分析下它的结构,在Inspectors tab下以Raw的方式可以看到完整的Response的消息,如下图Get和Post方法的区别Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE. 一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。

我们最常见的就是GET和POST了。

GET一般用于获取/查询资源信息,而POST一般用于更新资源信息.我们看看GET和POST的区别1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.2. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.3. GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。

4. GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.状态码Response 消息中的第一行叫做状态行,由HTTP协议版本号,状态码,状态消息三部分组成。

状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response.HTTP/1.1中定义了5类状态码,状态码由三位数字组成,第一个数字定义了响应的类别1XX 提示信息- 表示请求已被成功接收,继续处理2XX 成功- 表示请求已被成功接收,理解,接受3XX 重定向- 要完成请求必须进行更进一步的处理4XX 客户端错误- 请求有语法错误或请求无法实现5XX 服务器端错误- 服务器未能实现合法的请求看看一些常见的状态码200 OK最常见的就是成功响应状态码200了,这表明该请求被成功地完成,所请求的资源发送回客户端如下图,打开博客园首页302 Found重定向,新的URL会在response中的Location中返回,浏览器将会使用新的URL 发出新的Request。

例如在IE中输入. HTTP服务器会返回304,IE取到Response中Location header的新URL, 又重新发送了一个Request.304 Not Modified代表上次的文档已经被缓存了,还可以继续使用,例如打开博客园首页,发现很多Response 的status code 都是304提示:如果你不想使用本地缓存可以用Ctrl+F5强制刷新页面400 Bad Request 客户端请求与语法错误,不能被服务器所理解403 Forbidden 服务器收到请求,但是拒绝提供服务404 Not Found请求资源不存在(输错了URL)比如在IE中输入一个错误的URL,/tesdf.aspx500 Internal Server Error 服务器发生了不可预期的错误503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常HTTP Request header使用Fiddler 能很方便的查看Reques header, 点击Inspectors tab -> Request tab -> headers 如下图所示.header 有很多,比较难以记忆,我们也按照Fiddler那样把header 进行分类,这样比较清晰也容易记忆。

Cache 头域If-Modified-Since作用:把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比。

如果时间一致,那么返回304,客户端就直接使用本地缓存文件。

如果时间不一致,就会返回200和新的文件内容。

客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示在浏览器中。

例如:If-Modified-Since: Thu, 09 Feb 2012 09:07:57 GMT实例如下图If-None-Match作用: If-None-Match和ETag一起工作,工作原理是在HTTP Response中添加ETag 信息。

当用户再次请求该资源时,将在HTTP Request 中加入If-None-Match信息(ETag的值)。

如果服务器验证资源的ETag没有改变(该资源没有更新),将返回一个304状态告诉客户端使用本地缓存文件。

否则将返回200状态和新的资源和Etag. 使用这样的机制将提高网站的性能例如: If-None-Match: "03f2b33c0bfcc1:0"实例如下图Pragma作用:防止页面被缓存,在HTTP/1.1版本中,它和Cache-Control:no-cache作用一模一样Pargma只有一个用法,例如:Pragma: no-cache注意: 在HTTP/1.0版本中,只实现了Pragema:no-cache, 没有实现Cache-Control Cache-Control作用: 这个是非常重要的规则。

这个用来指定Response-Request遵循的缓存机制。

各个指令含义如下Cache-Control:Public 可以被任何缓存所缓存()Cache-Control:Private 内容只缓存到私有缓存中Cache-Control:no-cache 所有内容都不会被缓存还有其他的一些用法,我没搞懂其中的意思,请大家参考其他的资料Client 头域Accept作用:浏览器端可以接受的媒体类型,例如:Accept: text/html 代表浏览器可以接受服务器回发的类型为text/html 也就是我们常说的html文档,如果服务器无法返回text/html类型的数据,服务器应该返回一个406错误(non acceptable)通配符* 代表任意类型例如Accept: */* 代表浏览器可以处理所有类型,(一般浏览器发给服务器都是发这个)Accept-Encoding:作用:浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate),(注意:这不是只字符编码);例如:Accept-Encoding: gzip, deflate作用:浏览器申明自己接收的语言。

相关文档
最新文档