http协议
- 格式:docx
- 大小:716.38 KB
- 文档页数:11
HTTP协议解析HTTP(Hypertext Transfer Protocol)即超文本传输协议,是一种用于在Web浏览器和Web服务器之间传输数据的协议。
它是建立在TCP/IP协议之上的应用层协议,定义了客户端和服务器之间进行通信的规则和格式。
本文将对HTTP协议进行解析,从其原理、组成,以及常见的请求和响应过程等方面进行探讨。
一、HTTP原理HTTP是无状态的协议,即每个请求和响应之间是独立的,服务器不会保留任何关于之前请求的信息。
这主要是为了让服务器端尽量减少存储信息的负担,提高运行效率。
为了解决这个问题,HTTP引入了Cookie机制,允许服务器向客户端发送一个小型文本文件,以便通过存储和检索信息来维持HTTP会话状态。
二、HTTP组成HTTP消息由请求消息和响应消息组成。
请求消息由请求行、请求头部和请求正文三部分组成,而响应消息由状态行、响应头部和响应正文三部分组成。
1. 请求行请求行由请求方法、请求路径和协议版本三部分组成。
常见的请求方法有GET、POST、PUT、DELETE等。
请求路径指明了请求的资源路径,协议版本通常为HTTP/1.1。
2. 请求头部请求头部包含了请求的相关信息,如Host、User-Agent、Accept等。
其中Host字段标识了请求的服务器主机名和端口号,User-Agent字段标识了请求的客户端信息,而Accept字段标识了客户端能够接受的媒体类型。
3. 请求正文请求正文可选,主要用于向服务器发送额外的数据,如表单数据等。
4. 状态行状态行由协议版本、状态码和状态描述三部分组成。
协议版本通常为HTTP/1.1,状态码用于表示请求的处理结果,如200表示成功,404表示资源未找到,500表示服务器内部错误等。
5. 响应头部响应头部包含了响应的相关信息,如Content-Type、Content-Length、Set-Cookie等。
其中Content-Type字段标识了响应的媒体类型,Content-Length字段标识了响应正文的长度,Set-Cookie字段用于设置Cookie。
http是什么意思HTTP是一种常用的网络协议,全称为超文本传输协议(Hypertext Transfer Protocol),其定义了客户端和服务器之间进行通信的规则。
在互联网中,HTTP是一种基于TCP/IP协议的应用层协议,用于在Web浏览器和Web服务器之间传输超文本文档。
HTTP是一个简单的协议,其设计目的是为了使分布式超媒体系统在Internet 上进行通信。
HTTP协议的主要功能是定义客户端和服务器之间进行通信的语法和语义。
通过HTTP,客户端可以发送请求给服务器,服务器则根据请求作出相应的响应。
HTTP协议使用统一资源标识符(Uniform Resource Identifier,URI)来定位和传输被请求的资源。
URI由URL(Uniform Resource Locator)和URN (Uniform Resource Name)组成,URL表示资源的具体位置。
HTTP协议使用的是请求-响应模型。
客户端发送的请求消息由请求行、请求头部和请求体组成。
请求行中包含请求方法、URL和HTTP版本。
常见的请求方法有GET、POST、PUT、DELETE等,这些方法定义了客户端对服务器资源进行的操作。
请求头部包含了关于请求的附加信息,如Accept、Cookie、User-Agent等。
请求体一般用于传输表单数据等内容。
服务器接收到客户端的请求后,根据请求的内容和目标资源的状态进行相应的处理,并返回响应给客户端。
响应由响应行、响应头部和响应体组成。
响应行中包含响应的HTTP版本、状态码和状态描述。
状态码用于表示服务器对请求的处理结果,常见的状态码有200表示成功,404表示资源未找到,500表示服务器内部错误等。
响应头部包含了关于响应的附加信息,例如Content-Type、Content-Length等。
响应体则包含了服务器返回给客户端的实际内容。
HTTP协议是一种无状态的协议,也就是说服务器不会保存客户端的状态信息。
HTTP协议⼀、HTTP协议1 HTTP协议简介超⽂本传输协议(英⽂:HyperText Transfer Protocol,缩写:HTTP)是⼀种⽤于分布式、协作式和超媒体信息系统的应⽤层协议。
HTTP 是万维⽹的数据通信的基础。
HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核⼦研究组织(CERN)所发起。
HTTP的标准制定由万维⽹协会(World Wide Web Consortium,W3C)和互联⽹⼯程任务组(Internet Engineering Task Force,IETF)进⾏协调,最终发布了⼀系列的RFC,其中最著名的是1999年6⽉公布的 RFC 2616,定义了HTTP协议中现今⼴泛使⽤的⼀个版本——HTTP 1.1。
2014年12⽉,互联⽹⼯程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)⼯作⼩组将HTTP/2标准提议递交⾄IESG进⾏讨论,于2015年2⽉17⽇被批准。
HTTP/2标准于2015年5⽉以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。
2 什么是http这⾥只是简单概述⼀下,更多详情可以参见:基于tcp/ip、⼀种⽹络应⽤层协议、超⽂本传输协议HyperText Transfer Protocol⼯作⽅式:客户端请求服务端应答的模式快速:⽆状态连接,灵活:可以传输任意对象,对象类型由Content-Type标记3 HTTP协议概述HTTP是⼀个客户端终端(⽤户)和服务器端(⽹站)请求和应答的标准(TCP)。
通过使⽤⽹页浏览器、⽹络爬⾍或者其它的⼯具,客户端发起⼀个HTTP请求到服务器上指定端⼝(默认端⼝为80)。
我们称这个客户端为⽤户代理程序(user agent)。
应答的服务器上存储着⼀些资源,⽐如HTML⽂件和图像。
我们称这个应答服务器为源服务器(origin server)。
http协议Http即超⽂本传输协议(英⽂:HyperText Transfer Protocol,缩写:HTTP),⽤来在⽹页间传输超⽂本的⼀种协议。
在这⾥需要了解三个内容:1、html;2、URL;3、http。
1、HTML(HyperText Markup Language),超⽂本标记语⾔;2、URI,统⼀资源标识符,互联⽹上所有的资源都有其唯⼀的URI;3、HTTP,超⽂本传输协议。
在开始http真正的内容之前,我们还需要了解⼀下什么是uri、url以及urn。
因为我们⼏乎所有的http请求都是通过url来完成的。
URI(Uniform Resource Identifier)统⼀资源标志符,是⼀个⽤于标识某⼀互联⽹资源名称的字符串。
HTTP使⽤统⼀资源标识符(Uniform Resource Identifiers, URI)来建⽴连接和传输数据。
URL(Uniform Resource Locator)统⼀资源定位符,如同在⽹络上的门牌,是因特⽹上标准的资源的地址,它是⼀种特殊类型的URI,包含了⽤于查找某个资源的⾜够的信息。
URN(Uniform Resource Name),期望为资源提供持久的、位置⽆关的标识⽅式,并允许简单地将多个命名空间映射到单个URN命名空间。
②域名部分:该URL的域名部分为。
⼀个URL中,也可以使⽤IP地址作为域名使⽤。
③端⼝部分:跟在域名后⾯的是端⼝,域名和端⼝之间使⽤:作为分隔符。
端⼝不是⼀个URL必须的部分,如果省略端⼝部分将采⽤默认端⼝。
④虚拟⽬录部分:从域名后的第⼀个/开始到最后⼀个/为⽌是虚拟⽬录部分。
本例中的虚拟⽬录是/news/。
⑤⽂件名部分:从域名后的最后⼀个/开始到?为⽌是⽂件名部分,如果没有?,则是从域名后的最后⼀个/开始到#为⽌,如果没有?和#,那么从域名后的最后⼀个/开始到结束都是⽂件名部分。
本例中的⽂件名是index.asp。
ithttp 1.0 版本 早期的版本 每http 1.1 版本,现在的版本,在规定须遵循一定的规则,这个规则就是HTTP 协简写,它是TCP/IP 协议的一个应用层协议,数据本身的格式。
协议,就不能说掌握了WEB 开发,更无法,如图所示,它分四个过程,建立连接、发接只处理一个请求和响应。
对每一个页面分开的请求和响应。
览器解析到这些标记时,还会向服务器请求。
接时,也会触发浏览器与Web 服务器开始一响应。
多个请求和响应过程可以重叠。
增请求头等。
称之为客户端向服务器发送了一个HTTP 请些消息头和正文都是可选的,消息头和正网络远程管理工具 telnet 明文传送,可以观察请求ssh 加密协议 状态码100~199200~299300~399400~499500~599些消息头和正文都是可选的,消息头和正件请求和应答,消息头相当于服务器和浏、值、回车和换行符第一个字母大写。
四类选项,多个选项之间以逗号分隔。
多个”Warning”头字段。
RACE 、PUT都是get 请求,例如在浏览器直接输地址访,可通过更改表单的提交方式实现。
不方式的区别主要表现在数据传递上。
地址后以?的形式带上交给服务器的数据,me=abc&password=xyz HTTP/1.1 ,其数据容量通常不能超过1K 。
向服务器发送数据,Post 方式的特点:传送例:HTTP/1.1 200 OK 状态,它是一个三位的十进制数。
响应状态浏览器把各层的内容逐层进行封装http 1.0 版本 早期的版本 每次请求都要重新建立连接,效率不高,资源的消耗大http 1.1 版本,现在的版本,在规定的超时期内,可以不间断的进行请求和响应操作,执行效率更高网络远程管理工具telnet 明文传送,可以观察请求和响应的内容ssh 加密协议 含义表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程表示成功接收请求并已完成整个处理过程为完成请求,客户需进一步细化请求。
http协议是什么HTTP(Hypertext Transfer Protocol)协议是一种用于传输超文本的应用层协议。
HTTP是Web服务的基础,它的功能是允许客户端与服务器之间传输和交换资源。
HTTP协议采用了请求-响应模型,客户端发送请求给服务器,服务器返回响应给客户端。
请求由请求行、请求头和请求体组成,而响应由响应行、响应头和响应体组成。
HTTP协议的主要特点如下:1. 简单:HTTP协议的请求和响应是简洁明了的文本形式,在协议中使用了易于理解的方法和状态码,使其易于使用和调试。
2. 无状态:HTTP协议是无状态的,即每个请求和响应是独立的,服务器不会记住之前的请求。
这导致了每个请求都需要携带所有必要的信息,而不依赖之前的请求。
3. 可扩展性:HTTP协议是可扩展的,可以通过请求头和响应头添加自定义的字段,以满足不同应用的需求。
4. 基于TCP/IP:HTTP协议是建立在可靠的传输层协议TCP/IP之上的,确保了数据可靠的传输。
HTTP协议的工作流程如下:1. 客户端发起HTTP请求,发送一个HTTP方法(GET、POST等)、URL以及相应的请求头和请求体。
2. 服务器接收到请求,在响应头中包含了状态码、响应头和响应体。
3. 客户端接收到响应,根据响应头中的状态码判断请求的结果。
然后解析响应体中的数据,进行相应的处理。
HTTP协议的各个版本之间也有一些区别:- HTTP/0.9:1991年发布,只支持GET方法,没有请求头和响应头,只能传输HTML格式的文本。
- HTTP/1.0:1996年发布,支持多种数据格式,引入了请求头和响应头,并增加了POST方法和状态码。
- HTTP/1.1:1999年发布,是当前主流版本,支持持久连接、管道化请求以及更多的状态码。
- HTTP/2:2015年发布,引入了二进制传输、多路复用、头部压缩等新特性,提高了性能和效率。
除了常见的HTTP协议,还有HTTPS(HTTP Secure)协议,它通过在HTTP协议上叠加SSL/TLS加密层来提供安全的通信。
HTTP协议协议名称:HTTP协议一、协议背景和目的HTTP(Hypertext Transfer Protocol)是一种应用层协议,用于在客户端和服务器之间传输超文本的数据。
它是万维网的基础,并被广泛应用于互联网上的各种应用程序中。
本协议的目的是确保数据的可靠传输和有效通信,以满足用户对网页、图片、视频等资源的请求。
二、协议要素1. 请求方法(Request Methods):- GET:获取指定资源。
- POST:向服务器提交数据。
- PUT:更新指定资源。
- DELETE:删除指定资源。
- HEAD:仅获取响应头信息。
- OPTIONS:获取服务器支持的方法列表。
- TRACE:追踪请求-响应的传输路径。
2. 状态码(Status Codes):- 1xx:信息响应,表示请求已被接收,继续处理。
- 2xx:成功响应,表示请求已成功被接收、理解、接受。
- 3xx:重定向响应,表示需要进一步操作以完成请求。
- 4xx:客户端错误响应,表示服务器无法处理请求。
- 5xx:服务器错误响应,表示服务器处理请求时发生错误。
3. 头部字段(Headers):- Host:指定请求的目标服务器。
- User-Agent:标识客户端的应用程序类型。
- Content-Type:指定请求或响应的媒体类型。
- Content-Length:指定请求或响应的数据长度。
- Cookie:在客户端和服务器之间传递的数据。
4. 实体主体(Entity Body):- 请求主体:包含客户端向服务器发送的数据。
- 响应主体:包含服务器返回给客户端的数据。
5. URL(Uniform Resource Locator):- 协议:指定使用的协议,如HTTP。
- 主机:指定服务器的域名或IP地址。
- 端口:指定服务器的端口号。
- 路径:指定服务器上资源的路径。
- 查询参数:可选参数,用于传递额外的信息。
三、协议流程1. 客户端向服务器发送HTTP请求:- 构建请求行,包括请求方法、URL和协议版本。
HTTP协议HTTP(HyperT extTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,浏览器与Web服务器之间所遵循的协议就是HTTP,关于HTTP协议的详细内容请参考RFC2616。
HTTP协议采用了请求/响应模型。
客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。
服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
浏览器就是与Web服务器产生连接的客户端程序,它的端口为TCP的80端口。
浏览器与Web服务器之间所遵循的协议就是HTTP。
HTTP的早期版本为HTTP/0.9,它适用于各种数据信息的简洁快速协议,但是其远不能满足日益发展各种应用的需要。
但HTTP/0.9作为HTTP协议具有典型的无状态性:每个事务都是独立进行处理的,当一个事务开始就在客户与服务器之间建立一个连接,当事务结束时就释放这个连接。
HTTP/0.9包含Simple-Request&Simple-Responsed的报文结构。
但是客户无法使用内容协商,所以服务器也无法返回实体的媒体类型。
1982年,Tim Berners-Lee提出了HTTP/1.0,在此后的不断丰富和发展中,HTTP/1.0成为最重要的面向事务的应用层协议。
该协议对每一次请求/响应,建立并拆除一次连接。
其特点是简单、易于管理,所以它符合了大家的需要,得到了广泛的应用。
其缺点是仍会发生下列问题:对用户请求响应慢、网络拥塞严重、安全性等。
1997年形成的HTTP/1.1,也就是现在普遍使用的协议,在持续连接操作机制中实现流水方式,即客户端需要对同一服务器发出多个请求时,其实现在多数的网页都是有多部分组成(比如多张图片),可用流水线方式加快速度,流水机制就是指连续发出多个请求并等到这些请求发送完毕,再等待响应。
http通信协议1. 简介HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议。
它是Web数据通信的基础,通过在客户端和服务器之间进行请求和响应来实现数据传输。
HTTP通信协议基于TCP/IP协议,使用可靠的连接,通常通过端口80进行通信。
它是一种无状态的协议,每个请求和响应之间是独立的,服务器不会维持任何客户端的状态信息。
2. HTTP请求HTTP请求由客户端发送给服务器,包含以下几个部分:请求行请求行包含请求方法、URL和协议版本,格式如下:请求方法 URL 协议版本常见的请求方法有GET、POST、PUT、DELETE等。
请求头请求头包含了关于请求的附加信息,格式为键值对,每个键值对占据一行。
常见的请求头有:•Host:指定服务器的域名或IP地址•User-Agent:指定客户端的信息•Content-Type:指定请求体的MIME类型•Cookie:指定客户端的Cookie信息请求体一些请求需要在请求体中传递数据,比如POST请求。
请求体的内容格式由Content-Type字段决定。
3. HTTP响应HTTP响应由服务器发送给客户端,包含以下几个部分:状态行状态行包含协议版本、状态码和状态消息,格式如下:协议版本状态码状态消息常见的状态码有200(成功)、404(未找到)、500(服务器内部错误)等。
响应头响应头包含了关于响应的附加信息,格式和请求头类似。
常见的响应头有:•Content-Type:指定响应体的MIME类型•Content-Length:指定响应体的长度•Set-Cookie:指定服务器返回的Cookie信息响应体响应体包含了实际的响应数据,格式由Content-Type字段决定。
4. HTTP状态管理由于HTTP协议是无状态的,为了在多个请求之间保持状态,服务器通过Cookie和Session来实现状态管理。
CookieCookie是服务器在HTTP响应头中返回给客户端的一小段数据。
http属于什么协议HTTP(HyperText Transfer Protocol)是一种用于在网络中传输超文本数据的通信协议,是建立在TCP/IP协议之上的。
它是客户端与服务器之间进行通信的基础协议,在互联网中扮演着重要的角色。
本文将从HTTP的起源、工作原理以及在互联网中的应用方面进行介绍。
HTTP协议最初由欧洲粒子物理研究所(CERN)的蒂姆·伯纳斯 - 李(Tim Berners-Lee)于1989年发明,作为一种用于在不同计算机之间共享信息的方法。
早期的HTTP协议只支持传输纯文本的超文本数据,但随着互联网的发展,它逐渐演化为现在可以传输多媒体内容的协议。
HTTP的工作原理是基于客户端-服务器模式。
当客户端(通常是Web浏览器)向服务器发送请求时,它会发送一个指定的URL给服务器,服务器则会解析这个URL,找到相应的资源,并将资源发送回客户端。
这个请求-响应的过程分为几个步骤,包括建立连接、发送请求、服务器处理请求、服务器发送响应和断开连接。
HTTP的请求由多个部分组成,包括请求行、请求头和请求正文。
- 请求行包含请求方法(比如GET、POST、PUT等)、请求URL和协议版本。
- 请求头包含了关于请求的其他信息,比如浏览器类型、身份验证、缓存控制等。
- 请求正文包含了请求所要传输的数据,比如表单数据。
HTTP的响应也由多个部分组成,包括状态行、响应头和响应正文。
- 状态行包含了响应的状态码(比如200表示成功,404表示未找到资源等)和协议版本。
- 响应头包含了关于响应的其他信息,比如服务器类型、内容类型、缓存控制等。
- 响应正文包含了响应所传输的数据,比如HTML页面、图片、视频等。
HTTP协议在互联网中广泛应用,它是万维网的基础。
通过HTTP,用户可以使用Web浏览器访问并浏览网页、发送和接收电子邮件、下载文件、交互式地填写表单,等等。
同时,HTTP也是许多其他高级协议的基础,比如HTTPS(基于SSL 或TLS加密的HTTP)、HTTP/2(HTTP的升级版本,提供更高效的传输能力)和RESTful API(一种用于构建Web服务的设计原则)。
什么是HTTP协议协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器Web服务器,浏览器,代理服务器实际上我们输入URL后,我们的浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器,浏览器解析Response中的HTML,这样我们就看到了网页,我们的Request 有可能是经过了代理服务器,最后才到达Web服务器的。
过程如下图所示代理服务器就是网络信息的中转站,有什么功能呢?1. 提高访问速度,大多数的代理服务器都有缓存功能。
2. 突破限制,也就是FQ了3. 隐藏身份。
URL详解URL(Uniform Resource Locator) 地址用于描述一个网络上的资源, 基本格式如下schema://host[:port#]/path/.../[?query-string][#anchor]scheme 指定低层使用的协议(例如:http, https, ftp)host HTTP服务器的IP地址或者域名port# HTTP服务器的默认端口是80,这种情况下端口号可以省略。
如果使用了别的端口,必须指明,例如:8080/path 访问资源的路径query-string 发送给http服务器的数据anchor- 锚URL 的一个例子/sj/test/test.aspx?name=sviergn&x=true#stuff Schema: httphost: path: /sj/test/test.aspxQuery String: name=sviergn&x=trueAnchor: stuffHTTP协议是无状态的http协议是无状态的,同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个客户端。
为了解决这个问题,Web程序引入了Cookie机制来维护状态.打开一个网页需要浏览器发送很多次Request1. 当你在浏览器输入URL 的时候,浏览器发送一个Request去获取 的html. 服务器把Response发送回给浏览器.2. 浏览器分析Response中的HTML,发现其中引用了很多其他文件,比如图片,CSS文件,JS文件。
3. 浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。
4. 等所有的文件都下载成功后。
网页就被显示出来了。
HTTP消息的结构先看Request 消息的结构, Request 消息分为3部分,第一部分叫Request line, 第二部分叫Request header, 第三部分是body. header和body之间有个空行,结构如下图第一行中的Method表示请求方法,比如"POST","GET", Path-to-resoure表示请求的资源,Http/version-number 表示HTTP协议的版本号当使用的是"GET" 方法的时候,body是为空的比如我们打开博客园首页的request 如下GET / HTTP/1.1Host: 抽象的东西,难以理解,老感觉是虚的,所谓眼见为实, 实际见到的东西,我们才能理解和记忆。
我们今天用Fiddler,实际的看看Request和Response.下面我们打开Fiddler 捕捉一个博客园登录的Request 然后分析下它的结构, 在Inspectors tab下以Raw的方式可以看到完整的Request的消息,如下图我们再看Response消息的结构, 和Request消息的结构基本一样。
同样也分为三部分,第一部分叫Response line, 第二部分叫Response 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 服务器端错误- 服务器未能实现合法的请求常见状态码:1.200 OK最常见的就是成功响应状态码200了,这表明该请求被成功地完成,所请求的资源发送回客户端2.302 Found重定向,新的URL会在response 中的Location中返回,浏览器将会自动使用新的URL发出新的Request 例如在IE中输入,. HTTP服务器会返回302,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 如下图所示.Cache 头域If-Modified-Since作用:把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比。
如果时间一致,那么返回304,客户端就直接使用本地缓存文件。
如果时间不一致,就会返回200和新的文件内容。
客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示在浏览器中.例如:If-Modified-Since: Thu, 09 Feb 2012 09:07:57 GMTIf-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-ControlCache-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。
Accept-Language作用:浏览器申明自己接收的语言。