HTTP协议详解之响应

合集下载

HTTP响应头部

HTTP响应头部

HTTP响应头部HTTP(超文本传输协议)是用于在Web浏览器和Web服务器之间传输数据的协议。

在HTTP请求和响应过程中,头部是重要的组成部分之一,它包含了关于请求或响应的元数据信息。

本文将介绍HTTP响应头部的作用和常见的头部字段。

一、HTTP响应头部的作用HTTP响应头部是服务器在接收到客户端(浏览器)发送的请求后,向客户端返回的一部分响应数据。

它在传输过程中携带了一些元数据信息,用于指示服务器的处理结果、响应的内容类型、缓存控制等。

客户端接收到HTTP响应头部后,根据其中的信息进行相应的处理。

以下是HTTP响应头部的常见字段及其作用。

二、常见的HTTP响应头部字段1. Content-TypeContent-Type字段用于指定返回内容的类型。

它告诉客户端如何解析响应数据。

常见的值包括text/html(HTML文档)、text/css(CSS文件)、application/json(JSON数据)等。

2. Content-LengthContent-Length字段用于指定响应内容的字节数。

客户端可以根据该字段判断响应数据的大小,以便正确接收和处理。

3. ServerServer字段用于指定服务器软件的名称和版本号。

客户端可以根据该字段了解服务器的类型和版本信息。

4. Set-CookieSet-Cookie字段用于指定要在客户端保存的Cookie信息。

服务器通过设置Cookie,可以在客户端与服务器之间保持会话状态。

5. ExpiresExpires字段用于指定响应内容的过期时间。

客户端可以根据该字段来判断是否需要发送新的请求获取最新的内容。

6. LocationLocation字段用于指定重定向的URL。

当服务器需要将客户端重定向到另一个URL时,会在响应头部中设置该字段。

以上是一些常见的HTTP响应头部字段,它们在HTTP协议中被广泛应用于Web开发和网络通信过程中。

三、HTTP响应头部的重要性HTTP响应头部对于客户端和服务器之间的通信至关重要。

HTTP协议简述

HTTP协议简述

HTTP协议简述前⾔HTTP协议是整个Web的基础,是客户端和服务器端协同⼯作的基⽯,要想了解Web的⼯作原理、优化Web应⽤,就要完全理解HTTP协议。

HTTP的操作过程1 ,浏览器分析指向页⾯的URL2 ,浏览器向DNS系统请求解析域名所对应的服务器IP地址3 ,DNS系统解析出服务器的IP,并返回给主机4 ,浏览器与该服务器的进程建⽴TCP链接(三次握⼿,端⼝默认为80)5 ,浏览器发出HTTP请求:如GET /article/index.html6 ,服务器收到请求并作出相应处理,把⽂件index.html发送给浏览器7 ,释放TCP链接(四次握⼿)8 ,浏览器解析index.html⽂件,将web页显⽰出来。

HTTP协议的特点HTTP协议是⽆状态的,即多次访问⼀个服务器上的页⾯,服务器并不知道你曾经访问过,每次访问的响应都当做第⼀次访问⼀样。

所以,在实际应⽤中,通常使⽤CooKie加数据库的⽅式记录和跟踪⽤户的活动。

HTTP有⾮持久连接和持久连接:采⽤⾮持久连接时,⽹页的每个元素对象(如.png,jpeg图等)的传输都需单独建⽴⼀个TCP连接(第三次握⼿可携带请求信息)采⽤持久连接时,仅需建⽴⼀次TCP连接,服务器发送响应后仍保持连接,客户和服务器可以继续在这条连接上发送请求和响应报⽂。

Cookie以及其作⽤CooKie是由服务器⽣成,但存储在⽤户主机上的⽂本⽂件,它保存了服务器和客户之间传递的状态信息,作为识别⽤户的⼿段。

通过Cookie服务器就能从数据库中查询该⽤户的活动记录,进⽽可以执⾏⼀些个性化操作get和post⽅法的区别:⼀般我们在浏览器输⼊⼀个⽹址访问⽹站都是GET请求;在FORM表单中,可以通过设置Method指定提交⽅式为GET或POST,默认时为GET提交⽅式。

get请求⼀般不会修改服务器的信息,仅⽤于请求页⾯;post请求可能会修改服务器中的资源信息,如提交评论、博客等都是通过post请求实现。

HTTP协议详解(深入理解)

HTTP协议详解(深入理解)

HTTP协议详解(深⼊理解)引⼊超⽂本传输协议(HTTP,HyperText Transfer Protocol)是互联⽹上应⽤最为⼴泛的⼀种⽹络协议。

所有的WWW⽂件都必须遵守这个标准。

设计HTTP最初的⽬的是为了提供⼀种发布和接收HTML页⾯的⽅法。

1960年美国⼈Ted Nelson构思了⼀种通过计算机处理⽂本信息的⽅法,并称之为超⽂本(hypertext),这成为了HTTP超⽂本传输协议标准架构的发展根基。

Ted Nelson组织协调万维⽹协会(World Wide Web Consortium)和互联⽹⼯程⼯作⼩组(Internet Engineering Task Force )共同合作研究,最终发布了⼀系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

http协议的作⽤及特点HTTP是⼀个客户端和服务器端请求和应答的标准(TCP)。

客户端是终端⽤户,服务器端是⽹站。

通过使⽤Web浏览器、⽹络爬⾍或者其它的⼯具,客户端发起⼀个到服务器上指定端⼝(默认端⼝为80)的HTTP请求。

(我们称这个客户端)叫⽤户代理(user agent)。

应答的服务器上存储着(⼀些)资源,⽐如HTML⽂件和图像。

(我们称)这个应答服务器为源服务器(origin server)。

在⽤户代理和源服务器中间可能存在多个中间层,⽐如代理,⽹关,或者隧道(tunnels)。

尽管TCP/IP协议是互联⽹上最流⾏的应⽤,HTTP协议并没有规定必须使⽤它和(基于)它⽀持的层。

事实上,HTTP可以在任何其他互联⽹协议上,或者在其他⽹络上实现。

HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使⽤。

通常,由HTTP客户端发起⼀个请求,建⽴⼀个到服务器指定端⼝(默认是80端⼝)的TCP连接。

HTTP服务器则在那个端⼝监听客户端发送过来的请求。

⼀旦收到请求,服务器(向客户端)发回⼀个状态⾏,⽐如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的⽂件、错误消息、或者其它⼀些信息。

http协议中各个响应状态返回值(200、400、404、500等)的含义

http协议中各个响应状态返回值(200、400、404、500等)的含义

http协议中各个响应状态返回值(200、400、404、500等)的含义1.该类型状态码表⽰接收到请求并且继续处理100:客户端必须继续发出请求。

101:客户端要求服务器根据请求转换HTTP协议版本。

2.该类型状态码表⽰动作被成功接收、理解和接受。

200,表明该请求被成功地完成,所请求的资源发送到客户端。

201,提⽰知道新⽂件的URL。

202,接受并处理,但处理未完成。

203,返回信息不确定或不完整。

204,收到请求,但返回信息为空.205,服务器完成了请求,⽤户必须复位当前已经浏览过的⽂件。

206,服务器已经完成了部分⽤户的GET请求。

3.该类型状态码表⽰为了完成指定的动作,必须接受进⼀步处理。

300,请求的资源可在多处获得。

301,本⽹页被永久性转移到另⼀个URL。

302,请求的⽹页被重定向到新的地址。

303,建议⽤户访问其他URL或访问⽅式。

304,⾃从上次请求后,请求的⽹页未修改过。

305,请求的资源必须从服务器指定的地址获得。

306,前⼀版本HTTP中使⽤的代码,现已不再使⽤。

307,声明请求的资源临时性删除。

4.该类型状态码表⽰请求包含错误语法或不能正确执⾏。

400,客户端请求有语法错误。

401,请求未经授权。

402,保留有效ChargeTo头响应。

403,禁⽌访问,服务器收到请求,但拒绝提供服务。

404,可连接服务器,但服务器⽆法取得所请求的⽹页,请求资源不存在。

405,⽤户在Request-Line字段定义的⽅法不被允许。

406,根据⽤户发送的Accept,请求资源不可访问。

407,类似401,⽤户必须⾸先在代理服务器上取得授权。

408,客户端没有在⽤户指定的时间内完成请求。

409,对当前资源状态,请求不能完成。

410,服务器上不再有此资源。

411,服务器拒绝⽤户定义的Content-Length属性请求。

412,⼀个或多个请求头字段在当前请求中错误。

413,请求的资源⼤于服务器允许的⼤⼩。

HTTP协议的原理和应用场景分析

HTTP协议的原理和应用场景分析

HTTP协议的原理和应用场景分析HTTP协议是现代互联网的基础协议之一,它是超文本传输协议的缩写。

HTTP协议的主要作用是建立在互联网基础设施之上的应用层协议,它使得网络上的应用能够相互通信和交互。

本文将详细介绍HTTP协议的原理和应用场景分析。

一、HTTP协议的原理HTTP协议是一个客户端和服务器之间通信的协议,一个HTTP请求由客户端发送至服务器,服务器响应这个请求,发送相关的数据和内容回到客户端。

HTTP协议是建立在TCP/IP协议之上,使用TCP或UDP端口作为传输层。

HTTP协议的工作方式是客户端发送请求给服务器,服务器回应响应。

HTTP协议的请求部分由以下几个部分组成:1.请求方法:表示请求哪种操作,常见的有GET、POST、HEAD等。

2.请求URI:表示请求的资源及其位置,如:/index.html。

3.协议版本:表示使用HTTP协议的版本号,如:HTTP/1.1。

4.请求头部:包含一些对请求的描述,如Accept、User-Agent 等。

5.请求正文:请求数据,如POST请求时传送的数据。

HTTP协议的响应部分由以下几个部分组成:1.状态码:表示服务器对请求的处理结果,如200表示成功,404表示未找到。

2.协议版本:表示使用HTTP协议的版本号,如:HTTP/1.1。

3.响应头部:包含一些对响应的描述,如Content-Type、Content-Length等。

4.响应正文:响应数据,如网页的HTML代码。

二、HTTP协议的应用场景HTTP协议是互联网中最为常用的协议之一,被广泛应用在互联网上的各类应用程序中,下面是HTTP协议的几个典型的应用场景:1.万维网(WWW)WWW是HTTP协议最为常见和重要的应用场景。

通过HTTP 协议,我们可以在网页之间进行超链接,实现网页之间的跳转和交互。

2.下载文件HTTP协议可以实现文档、图片、音频等文件的下载,例如常见的软件下载、视频下载等。

http协议格式

http协议格式

http协议格式HTTP(Hypertext Transfer Protocol)是构建互联网应用的基础协议之一,它定义了客户端和服务器之间进行通信的格式和规则。

HTTP协议的主要目标是实现一种简单而灵活的方式来传输超文本,以便可以访问和传输网页、图片、视频等资源。

HTTP协议的格式主要包括请求格式和响应格式。

下面分别介绍这两种格式。

一、请求格式HTTP请求由客户端发送给服务器,用于请求对特定资源的访问。

请求格式包括请求行、请求头部和请求主体。

1. 请求行:请求行的格式为:METHOD URL HTTP/版本号其中,METHOD表示请求方法,包括常见的GET、POST、PUT、DELETE等;URL代表请求的资源的路径;HTTP/版本号指定了使用的HTTP协议的版本。

2. 请求头部:请求头部包括多行,每行由键值对组成。

常见的头部有:- Host:指定请求的服务器主机名和端口号。

- User-Agent:客户端的浏览器信息。

- Accept:客户端可以接受的数据类型。

- Content-Type:请求主体的数据类型。

3. 请求主体:请求主体是可选的,用于在POST请求中向服务器传送数据。

二、响应格式服务器接收到客户端的请求后,返回给客户端一个响应。

响应格式包括状态行、响应头部和响应主体。

1. 状态行:状态行的格式为:HTTP/版本号状态码状态描述其中,状态码表示服务器处理请求的结果,常见的状态码有200(成功)、404(资源未找到)、500(服务器内部错误)等。

2. 响应头部:响应头部和请求头部的格式类似,由多行键值对组成。

常见的头部有:- Content-Type:响应主体的数据类型。

- Content-Length:响应主体的长度。

- Set-Cookie:设置响应的Cookie。

3. 响应主体:响应主体是服务器返回给客户端的数据。

三、HTTP协议的特点1. 简单灵活:HTTP协议采用简单的文本格式,易于理解和编写。

Http请求详解(转)----请求+响应各字段详解

Http请求详解(转)----请求+响应各字段详解

Http请求详解(转)----请求+响应各字段详解参考1. HTTP请求格式⾸先介绍HTTP协议:(HTTP,HyperText Transfer Protocol)是上应⽤最为⼴泛的⼀种。

所有的⽂件都必须遵守这个标准。

⼯作原理:1. 由HTTP客户端发起⼀个请求,建⽴⼀个到服务器指定端⼝(默认是)的TCP连接。

连接2. HTTP服务器则在那个端⼝监听客户端发送过来的请求。

⼀旦收到请求,请求3. 服务器(向客户端)发回⼀个状态⾏,⽐如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的⽂件、错误消息、或者其它⼀些信息。

响应4. 客户端接收服务器所返回的信息通过浏览器显⽰在⽤户的显⽰屏上,然后客户机与服务器断开连接显⽰内容HTTP使⽤TCP⽽不是UDP的原因在于(打开)⼀个⽹页必须传送很多数据,⽽TCP协议提供传输控制,按顺序组织数据,和错误纠正。

做过Socket编程的⼈都知道,当我们设计⼀个通信协议时,“消息头/消息体”的分割⽅式是很常⽤的,消息头告诉对⽅这个消息是⼲什么的,消息体告诉对⽅怎么⼲。

HTTP协议传输的消息也是这样规定的,每⼀个HTTP包都分为HTTP头和HTTP体两部分,消息体是可选的,⽽消息头是必须的。

每当我们打开⼀个⽹页,在上⾯点击右键,选择“查看源⽂件”,这时看到的HTML代码就是HTTP的消息体,那么消息头可以通过浏览器的开发⼯具或者插件可以看到,如果⽕狐的Firebug,IE的Httpwatch。

HTTP请求是指:客户端通过发送 HTTP 请求向服务器请求对资源的访问。

它向服务器传递了⼀个数据块,也就是请求信息,HTTP 请求由三部分组成:请求⾏、请求头和请求正⽂。

请求⾏:请求⽅法 URI 协议/版本请求头(Request Header)请求正⽂下⾯是⼀个HTTP请求的数据:POST /index.html HTTP/1.1 请求⽅法 url 协议/版本号Host: localhost 主机地址User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-cn,zh;q=0.5Accept-Encoding: gzip, deflateConnection: keep-aliveReferer: <a target=_blank href="http://localhost/" style="color: rgb(51, 102, 153); text-decoration: none;">http://localhost/</a>Content-Length:25Content-Type:application/x-www-form-urlencoded请求空⾏标志着请求头结束,请求正⽂(请求体)的开始username=aa&password=12341、请求⾏:请求⽅法URI协议/版本请求的第⼀⾏是“⽅法 URL 协议/版本”,并以回车换⾏作为结尾。

HTTP协议详细总结

HTTP协议详细总结

HTTP协议详细总结HTTP超⽂本传输协议,是WWW上应⽤的最多的协议。

了解和掌握HTTP协议是对程序⼈员的基本要求。

⼀、HTTP介绍 HTTP是⼀个基于请求/响应模式的、⽆状态的协议。

即,浏览器与服务端连接之后,浏览器向服务器发送⼀个请求,服务器返回响应信息之后,双⽅的链接就被关闭。

我们要知道,应⽤层的HTTP要使⽤传输层的TCP协议来完成。

⽽TCP协议是通过“3次握⼿”建⽴连接,是⾯向连接的协议。

默认情况下,浏览器与Web服务器上80端⼝监听的服务器程序建⽴TCP连接。

HTTP1.0是典型的请求/响应模式。

为了减少服务器的开销,HTTP1.1默认有“持续连接”的机制。

通过这种机制,客户端发送请求得到响应后,连接不会马上关闭,可以继续发送请求,还可以流⽔线发送多个请求、⽽不⽤等待每⼀个响应的到来。

⼆、URI和URL URI(统⼀资源标识符)纯粹是⼀种符号结构,⽤于指定构成Web资源的字符串的各个不同部分。

⽽URL(统⼀资源定位符)是⼀种特殊的URI,包含了⽤于查找某个资源的⾜够信息。

URI是⼀种语义上的抽象概念,可以是绝对的,也可以是相对的,⽽URL则必须提供⾜够的信息来定位,所以,是绝对的,⽽通常说的relative URL,则是针对另⼀个absolute URL,本质上还是绝对的。

三、HTTP请求格式如图:(CRLF表⽰回车符+换⾏符,不同颜⾊之间⽤空格隔开)第⼀⾏叫做请求⾏。

所以我们可以说HTTP请求由请求⾏、消息报头、请求正⽂组成。

1、请求⾏如上,请求⾏以⼀个⽅法符号开头,空格之后,⼀个请求URI,再空格,然后⼀个HTTP版本,最后⼀个回车换⾏。

其中请求⽅法有如下⼏种:我们在浏览器地址栏直接输⼊地址的时候,采⽤的就是GET⽅法。

HEAD⽅法⼀般⽤于测试超链接的有效性,因为它只是请求响应消息的报头。

消息报头后⾯会讲。

(HTTP协议中,请求⽅法必须全部⼤写)2、请求正⽂类似name=XXX&pwd=XXXX的内容四、HTTP响应格式与HTTP请求类似,如图:第⼀⾏叫做状态⾏。

http协议请求响应报文格式及状态码详解

http协议请求响应报文格式及状态码详解

HTTP协议报文格式HTTP协议(Hypertext Transfer Protocol――超文本传输协议)浏览器端(客户端)向WEB 服务器端访问页面的过程和HTTP协议报文的格式。

基于HTTP协议的客户机访问包括4个过程,分别是建立TCP套接字连接、发送HTTP请求报文、接收HTTP应答报文和关闭TCP套接字连接:1. 创建TCP套接字连接客户端与WEB服务器创建TCP套接字连接,其中WEB端服务器的地址可以通过域名解析确定,WEB端的套接字侦听端口一般是80。

2. 发送HTTP请求报文客户端向WEB服务端发送请求报文,HTTP协议的请求报文格式为:请求消息= 请求行(实体头信息)CRLF[实体内容]请求行= 方法URL HTTP版本号CRLF方法= GET|HEAD|POST|扩展方法URL = 协议名称+宿主名+目录与文件名其中"CRLF"表示回车换行。

"请求行"中的"方法"描述了对指定资源执行的动作,常用的方法"GET"、"HEAD"和"POST"等3种,它们的含义如表15-8所示:请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。

(1)请求行请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。

例如,GET /index.html HTTP/1.1。

HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。

这里介绍最常用的GET方法和POST方法。

GET:当客户端要从服务器中读取文档时,使用GET方法。

GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。

使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号(“?”)代表URL的结尾与请求参数的开始,传递参数长度受限制。

Http协议之请求头和响应头

Http协议之请求头和响应头

Http请求头
Accept:客户机通过这个头,告诉服务器,它支持哪些数据类型
Accept-Charset::客户机通过这个头,告诉服务器,它支持的编码
Acceptቤተ መጻሕፍቲ ባይዱEncoding: 客户机通过这个头,告诉服务器,支持哪种数据压缩格式
Accept-Language: 客户机采用的是哪个语言
Connection:表示是否需要持久连接。
HTTP响应头
Location:服务器通过这个头告诉浏览器去访问哪个页面,这个头通常配合302状态码使用
server: 服务器通过这个头,告诉浏览器服务器类型
Content-Encoding: 服务器通过这个头告诉浏览器,回送的数据采用的压缩格式
ETag: W/"7777-1242234904000":缓存相关的头,为每一个资源配一个唯一的编号
Expires: 0 服务器通过这个头,告诉浏览器把会送的资源缓存多长时间,-1或0,则是不缓存
Cache-Control: no-cache
Pragma: no-cache
这三个头组合使用,让浏览器不要缓存数据
Content-Length: 服务器通过这个头告诉浏览器,回送的数据的大小长度
Content-Type: 服务器通过这个头告诉浏览器,回送数据的类型
Last-Modified: 服务器通过这个头告诉浏览器,缓存资源的最后修改时间
Refresh:服务器通过这个头告诉浏览器,定时刷新网页
Content-Disposition: attachment; filename=aaa.zip:服务器通过这个头告诉浏览器,以下载方式打开数据

计算机网络——HTTP协议详解

计算机网络——HTTP协议详解

计算机⽹络——HTTP 协议详解⼀、前⾔ 前段时间为了研究计算机⽹络,看了看《计算机⽹络⾃顶向下⽅法》这本书。

不得不说这真是⼀本好书,内容详细,⽽且讲解的浅显易懂,采⽤了⼤量类⽐的⽅式进⾏讲解,⽽不是单纯的叙述理论,同时在每⼀章的后⾯都有⼤量的练习题以及很有意思的编程题,所以开头先来推荐⼀波。

这本书我暂时只看到了第⼆章,刚看完的内容,所以写⼀篇相关的博客,就当是记笔记了。

⼆、详解 2.1 HTTP 概述 是⼀个应⽤层的协议,全称是超⽂本传输协议,它是的核⼼。

由两个程序实现——客户端程序和服务端程序,⽽的作⽤简单来说就是客户端向服务器发请求,⽽服务器根据请求做出响应。

定义了客户端向服务器请求资源的⽅式,以及服务器向客户端回送资源的⽅式,也就是的请求+响应模型。

客户端向服务器发送请求报⽂请求资源,服务器接收到请求,向客户端回送包含这些资源的响应报⽂。

基于协议,由协议⽀持数据的传输,这说明HTTP 协议是⼀个⾯向连接的可靠协议。

当客户端向服务器请求资源时,⾸先将与服务器建⽴⼀个连接,当连接建⽴成功时,客户端和服务器之间就可以通过套接字接⼝访问,客户端通过连接传输请求报⽂,⽽服务器也通过这个连接回送响应报⽂及资源。

由于的可靠传输,保证了的报⽂⼀定能够完整的送到服务器上,⽽服务器的响应也能完整的回送到客户。

请求的资源⼀般是⼀个页⾯,⽽⼀个页⾯是由⼀个或多个对象组成的,这个对象可能是⼀个⽂件,⼀张图⽚,甚⾄是⼀段视频或者⼩程序。

对于来说,组成⼀个页⾯的这些对象并不属于同⼀个资源,每⼀个对象都是⼀个单独的资源,需要逐⼀请求。

假设我们向服务器请求⼀个页⾯,这个页⾯由⼀个⽂件以及张图⽚组成(通过路径引⽤图⽚),则这个页⾯共有个对象,当服务器接收到客户端对页⾯的请求后,将⽂件通过响应报⽂返回,⽽客户端接收到响应的⽂件后,发现它还引⽤了张图⽚,这时客户端将再次发送个请求,来分别请求这张图⽚。

服务器向客户端发送被请求的⽂件,但是不记录任何客户的信息,所以当你连续向服务器请求同⼀份资源两次时,服务器也会给你响应两次,不会因为你已经请求过就不给你响应了。

HTTP协议详解

HTTP协议详解

HTTP 协议详解 引言
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.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的 应答后,即断开连接。采用是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着 如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在 服务器不需要先前信息时它的应答就较快。
一、HTTP 协议详解之 URL 篇
http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于 TCP 的 连接方式,HTTP1.1 版本中给出一种持续连接的机制,绝大多数的 Web 开发,都是构建在 HTTP 协议之 上的 Web 应用。 HTTP URL (URL 是一种特殊类型的 URI,包含了用于查找某个资源的足够的信息)的格式如下: http://host[":"port][abs_path] http 表示要通过 HTTP 协议来定位网络资源;host 表示合法的 Internet 主机域名或者 IP 地址; port 指定一个端口号,为空则使用缺省端口 80;abs_path 指定请求资源的 URI;如果 URL 中没有给 出 abs_path, 那么当它作为请求 URI 时, 必须以“/”的形式给出, 通常这个工作浏览器自动帮我们完成。 eg: 1、输入: 浏览器自动转换成:/ 2、http:192.168.0.116:8080/index.jsp

HTTP协议—HTTP报文格式详解

HTTP协议—HTTP报文格式详解

HTTP协议—HTTP报⽂格式详解HTTP协议中有两种报⽂:请求报⽂和响应报⽂⼀、请求报⽂下⾯是⼀个⽐较典型的请求报⽂:每⼀⾏由⼀个回车和换⾏符结束,最后⼀⾏额外再加⼀个回车换⾏符。

HTTP请求报⽂的第⼀⾏叫做请求⾏,后⾯部叫⾸部⾏。

1、请求⾏:请求⾏的三个字段:⽅法字段、URL字段、HTTP版本字段。

⽅法字段可取值:GET、POST、HEAD、PUT和DELETE。

绝⼤部分HTTP请求报⽂都是GET⽅法。

当浏览器请求⼀个对象时,使⽤GET⽅法,在URL字段带有请求对象标识。

2、⾸部⾏Host:127.0.0.1:指明了对象所在主机,虽然主机中已经有⼀条TCP连接存在,但该⾏提供的信息是Web代理⾼速缓存所要求的。

User-Agent:指明代理,就是浏览器的类型。

这服务器可以有效地为不同类型的⽤户代理实际发送相同对象的不同版本。

Accept-Language:zh-CN:表⽰语法版本。

如果服务器中没有这样的对象的,就会发送其默认的版本。

Connection:close :要求服务器在发送完被请求的对象后就关闭这条连接。

HTTP请求通⽤请求格式(下⾯讨论实体体)实体体(entity body):使⽤GET⽅法时实体体会为空,使⽤POST⽅法时才会使⽤该实体体。

提交表单时,会使⽤到POST⽅法(例如在搜索引擎中输⼊搜索关键字),实体体中包含的就是⽤户在表单字段中输⼊的值。

虽然POST⽅法才能⽤到实体体,但是”⽤表单⽣成的请求报⽂不是必须使⽤POST⽅法“:HTML表单经常使⽤GET⽅法,在表单字段中所请求的URL中包括输⼊的数据,例如⼀个使⽤GET⽅法的表单有两个字段aaa和bbb,那么其URL的的结构是这样的:/admin? aaa&bbb (⾮常常见,浏览⽹页的时候可以注意⼀下)下⾯介绍另外⼀些⽅法:HEAD⽅法,与GET类似,服务器收到HEAD请求时,会⽤⼀个HTTP报⽂响应,但是不会反回请求对象,常⽤于调试跟踪。

HTTP响应报文与工作原理详解

HTTP响应报文与工作原理详解

超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议。

HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应信息。

HTTP 请求报文HTTP 请求报文由请求行、请求头部、空行和请求包体 4 个部分组成,如下图所示:下面对请求报文格式进行简单的分析:请求行:请求行由方法字段、URL 字段和HTTP 协议版本字段 3 个部分组成,他们之间使用空格隔开。

常用的 HTTP 请求方法有 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT;● GET:当客户端要从服务器中读取某个资源时,使用GET 方法。

GET 方法要求服务器将URL 定位的资源放在响应报文的数据部分,回送给客户端,即向服务器请求某个资源。

使用GET 方法时,请求参数和对应的值附加在 URL 后面,利用一个问号(“?”)代表URL 的结尾与请求参数的开始,传递参数长度受限制。

例如,/index.jsp?id=100&op=bind。

● POST:当客户端给服务器提供信息较多时可以使用POST 方法,POST 方法向服务器提交数据,比如完成表单数据的提交,将数据提交给服务器处理。

GET 一般用于获取/查询资源信息,POST 会附带用户数据,一般用于更新资源信息。

POST 方法将请求参数封装在HTTP 请求数据中,以名称/值的形式出现,可以传输大量数据;请求头部:请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。

请求头部通知服务器有关于客户端请求的信息,典型的请求头有:● User-Agent:产生请求的浏览器类型;● Accept:客户端可识别的响应内容类型列表;星号“ * ” 用于按范围将类型分组,用“ */* ” 指示可接受全部类型,用“ type/* ”指示可接受 type 类型的所有子类型;● Accept-Language:客户端可接受的自然语言;● Accept-Encoding:客户端可接受的编码压缩格式;● Accept-Charset:可接受的应答的字符集;● Host:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机;● connection:连接方式(close 或 keepalive);● Cooki e:存储于客户端扩展字段,向同一域名的服务端发送属于该域的cookie;空行:最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头;请求包体:请求包体不在 GET 方法中使用,而是在POST 方法中使用。

HTTP协议格式详解

HTTP协议格式详解

HTTP协议格式详解HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议。

它是Web通信的基础,通过在客户端和服务器之间传递请求和响应来实现数据交换。

本文将详细介绍HTTP协议的格式,包括请求消息和响应消息的结构以及各个字段的含义。

一、请求消息格式HTTP请求消息由三个部分组成:请求行、请求头和请求体。

1. 请求行请求行包含了请求的方法、URI和HTTP版本。

格式如下:```<方法> <URI> HTTP/<版本>```常见的HTTP方法有GET、POST、PUT、DELETE等,URI表示请求的资源路径,版本表示HTTP协议的版本号。

2. 请求头请求头包含了请求的各种信息,以键值对的形式表示。

常见的请求头字段有:- Host:表示请求的主机名。

- User-Agent:表示客户端的用户代理。

- Accept:表示客户端能够接受的响应内容类型。

- Content-Type:表示请求体的内容类型。

- Cookie:表示客户端的Cookie信息。

- Authorization:表示客户端的身份验证信息。

请求头字段可以根据具体需求进行添加和修改,以满足请求的要求。

3. 请求体请求体是可选的,用于传递请求的数据。

常见的请求体格式有:- application/x-www-form-urlencoded:用于提交表单数据。

- multipart/form-data:用于上传文件。

- application/json:用于提交JSON格式的数据。

二、响应消息格式HTTP响应消息也由三个部分组成:状态行、响应头和响应体。

1. 状态行状态行包含了响应的HTTP版本、状态码和状态描述。

格式如下:```HTTP/<版本> <状态码> <状态描述>```常见的状态码有200表示成功,404表示资源未找到,500表示服务器内部错误等。

【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中的响应协议及302、304的含义

HTTP中的响应协议及302、304的含义

HTTP中的响应协议及302、304的含义响应协议HTTP/1.1 200 OK:响应协议为HTTP1.1,状态码为200,表⽰请求成功,OK是对状态码的解释;Server: Apache-Coyote/1.1:服务器的版本信息;Content-Type: text/html;charset=UTF-8:响应体使⽤的编码为UTF-8;Content-Length: 724:响应体为724字节;Set-Cookie: JSESSIONID=C97E2B4C55553EAB46079A4F263435A4; Path=/hello:响应给客户端的Cookie;Date: Wed, 25 Sep 2012 04:15:03 GMT:响应的时间,这可能会有8⼩时的时区差;响应码 响应头对浏览器来说很重要,它说明了响应的真正含义。

例如200表⽰响应成功了,302表⽰重定向,这说明浏览器需要再发⼀个新的请求。

200:请求成功,浏览器会把响应体内容(通常是html)显⽰在浏览器中;404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;500:请求资源找到了,但服务器内部出现了错误;302:重定向,当响应码为302时,表⽰服务器要求浏览器重新再发⼀个请求,服务器会发送⼀个响应头Location,它指定了新请求的URL地址;304:当⽤户第⼀次请求index.html时,服务器会添加⼀个名为Last-Modified响应头,这个头说明了index.html的最后修改时间,浏览器会把index.html内容,以及最后响应时间缓存下来。

当⽤户第⼆次请求index.html时,在请求中包含⼀个名为If-Modified-Since请求头,它的值就是第⼀次请求时服务器通过Last-Modified响应头发送给浏览器的值,即index.html最后的修改时间,If-Modified-Since请求头就是在告诉服务器,我这⾥浏览器缓存的index.html最后修改时间是这个,您看看现在的index.html最后修改时间是不是这个,如果还是,那么您就不⽤再响应这个index.html内容了,我会把缓存的内容直接显⽰出来。

HTTP协议格式详解

HTTP协议格式详解

HTTP协议格式详解HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议。

它是Web的基础,用于在客户端和服务器之间传递请求和响应。

HTTP协议的格式由请求和响应两部分组成,本文将详细解释这两部分的格式。

一、HTTP请求格式HTTP请求由请求行、请求头和请求体三部分组成。

1. 请求行请求行由三个字段组成,分别是请求方法、请求目标和协议版本。

- 请求方法:指定请求的动作,常见的方法有GET、POST、PUT、DELETE等。

- 请求目标:指定请求的资源路径,可以是绝对路径或相对路径。

- 协议版本:指定使用的HTTP协议版本,如HTTP/1.1。

示例:```GET /index.html HTTP/1.1```2. 请求头请求头包含了关于请求的附加信息,以键值对的形式表示。

常见的请求头字段有:- Host:指定请求的主机名和端口号。

- User-Agent:指定客户端的用户代理信息。

- Accept:指定客户端能够接受的响应内容类型。

- Content-Type:指定请求体的媒体类型。

示例:```Host: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0. 8Content-Type: application/json```3. 请求体请求体包含了请求的具体内容,通常用于POST请求。

示例:```{"username": "example","password": "123456"}```二、HTTP响应格式HTTP响应由状态行、响应头和响应体三部分组成。

http协议请求响应报文格式及状态码详解

http协议请求响应报文格式及状态码详解

HTTP协议报文格式HTTP协议(Hypertext Transfer Protocol――超文本传输协议)浏览器端(客户端)向WEB 服务器端访问页面的过程和HTTP协议报文的格式。

基于HTTP协议的客户机访问包括4个过程,分别是建立TCP套接字连接、发送HTTP请求报文、接收HTTP应答报文和关闭TCP套接字连接:1. 创建TCP套接字连接客户端与WEB服务器创建TCP套接字连接,其中WEB端服务器的地址可以通过域名解析确定,WEB端的套接字侦听端口一般是80。

2. 发送HTTP请求报文客户端向WEB服务端发送请求报文,HTTP协议的请求报文格式为:请求消息= 请求行(实体头信息)CRLF[实体内容]请求行= 方法URL HTTP版本号CRLF方法= GET|HEAD|POST|扩展方法URL = 协议名称+宿主名+目录与文件名其中"CRLF"表示回车换行。

"请求行"中的"方法"描述了对指定资源执行的动作,常用的方法"GET"、"HEAD"和"POST"等3种,它们的含义如表15-8所示:请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。

(1)请求行请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。

例如,GET /index.html HTTP/1.1。

HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。

这里介绍最常用的GET方法和POST方法。

GET:当客户端要从服务器中读取文档时,使用GET方法。

GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。

使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号(“?”)代表URL的结尾与请求参数的开始,传递参数长度受限制。

HTTP协议

HTTP协议

HTTP协议协议名称:HTTP协议一、引言HTTP(Hypertext Transfer Protocol)是一种应用层协议,用于在客户端和服务器之间传输超文本数据。

它是互联网上最常用的协议之一,被广泛应用于万维网(World Wide Web)中。

二、目的本协议的目的是规定HTTP通信的标准格式,确保客户端和服务器之间的数据传输顺利进行。

通过遵循本协议,可以实现信息的快速、准确和可靠的传输。

三、范围本协议适合于所有使用HTTP协议进行通信的客户端和服务器。

四、术语定义1. 客户端:发起HTTP请求的设备或者应用程序。

2. 服务器:接收并处理HTTP请求的设备或者应用程序。

3. 请求:客户端向服务器发起的数据传输请求。

4. 响应:服务器对客户端请求的回应数据。

五、协议规范1. 请求格式客户端向服务器发送请求时,应按照以下格式构造HTTP请求:```<方法> <URL> <协议版本><请求头部字段1>: <值1><请求头部字段2>: <值2>...<请求头部字段N>: <值N><请求正文>```- 方法:指定请求的类型,常见的方法有GET、POST、PUT、DELETE等。

- URL:请求的目标资源的地址。

- 协议版本:HTTP协议的版本号,如HTTP/1.1。

- 请求头部字段:附加的请求信息,如User-Agent、Content-Type等。

- 请求正文:可选,包含请求的数据。

2. 响应格式服务器对客户端请求的回应应按照以下格式构造HTTP响应:```<协议版本> <状态码> <状态码描述><响应头部字段1>: <值1><响应头部字段2>: <值2>...<响应头部字段N>: <值N><响应正文>```- 协议版本:HTTP协议的版本号,如HTTP/1.1。

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

HTTP协议详解之响应
1.什么是HTTP响应
当服务器收到浏览器的请求后,会发送响应消息给浏览器。

一个完整的响应消息主要包括响应首行、响应头信息、空行和响应正文。

其中,每个部分都代表了不同的含义。

下面我们会围绕HTTP响应消息的每个组成部分进行详细分析。

2.HTTP响应消息分析
下面我们通过HttpWatch抓包工具,抓取一段响应信息,然后对该信息进行分析。

(1)创建web应用Example05,将该应用发布到Tomcat服务器,启动Tomcat服务器。

在浏览器地址栏输入http://localhost:8080/Example05/index.jsp。

使用HttpWatch进行抓包,抓取的响应消息,如例1-1所示:
例1-1响应消息
HTTP/1.1200OK
Server:Apache-Coyote/1.1
Content-Type:text/html;charset=UTF-8
Content-Length:624
Date:Mon,03Nov201406:37:28GMT
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01Transitional//EN"> <html>
<head>
<base href="http://localhost:8080/Example05/">
<title>My JSP'index.jsp'starting page</title>
<meta http-equiv="pragma"content="no-cache">
<meta http-equiv="cache-control"content="no-cache">
<meta http-equiv="expires"content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description"content="This is my page">
<!--
<link rel="stylesheet"type="text/css"href="styles.css">
-->
</head>
<body>
This is my JSP page.<br>
</body>
</html>
由例1-1响应消息内容,分析可知:
(1)响应首行:其内容是”HTTP/1.1200OK”
●HTTP/1.1:表示协议版本
●200:表示响应状态码,200表示响应成功。

●OK:表示响应成功,对响应状态码的解释。

(2)响应头信息:类似于请求消息中的请求头,其格式和请求头信息格式一样,即响应头:响应头值。

●Server响应头:该响应头是服务器告诉浏览器,当前响应的服务类型和版本。

●Content-Type响应头:服务器告诉浏览器响应内容是什么类型,以及采用的
是什么字符编码。

该响应头的值现在为:text/html;charset=utf-8。

说明响应信
息的类型是文本类型中的html,使用的字符编码是utf-8。

●Content-Length响应头:服务器告诉浏览器,响应内容的长度,该响应内容
的长度现在是624个字节。

●Date响应头:表示是服务器是在什么时候响应回浏览器,注意这里的时间是
按照美国时间来计算。

(3)空行:响应头和响应体由空行连接。

(4)响应体:该响应消息的响应体是一个html文档。

浏览器可以直接识别这个html文件。

而我们访问的是一个jsp文件,响应回去的是一个html文件。

说明服务器将该jsp翻译成了一个html,然后再响应给浏览器。

相关文档
最新文档