HTTP 1.1状态代码及含义

合集下载

常见HTTP状态码(200、301、302、500等)释义

常见HTTP状态码(200、301、302、500等)释义

常见HTTP状态码(200、301、302、500等)释义对⽹站管理⼯作者来说有个词不陌⽣,HTTP状态码,它是⽤以表⽰⽹页服务器HTTP响应状态的3位数字代码。

状态码的第⼀个数字代表了响应的五种状态之⼀。

1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处理。

由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除⾮在某些试验条件下,服务器禁⽌向此类客户端发送 1xx 响应。

2XX系列:代表请求已成功被服务器接收、理解、并接受。

这系列中最常见的有200、201状态码。

200状态码:表⽰请求已成功,请求所希望的响应头或数据体将随此响应返回 201状态码:表⽰请求成功并且服务器创建了新的资源,且其 URI 已经随Location 头信息返回。

假如需要的资源⽆法及时建⽴的话,应当返回 '202 Accepted' 202状态码:服务器已接受请求,但尚未处理 3XX系列:代表需要客户端采取进⼀步的操作才能完成请求,这些状态码⽤来重定向,后续的请求地址(重定向⽬标)在本次响应的Location 域中指明。

这系列中最常见的有301、302状态码。

301状态码:被请求的资源已永久移动到新位置。

服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会⾃动将请求者转到新位置。

302状态码:请求的资源临时从不同的URI响应请求,但请求者应继续使⽤原有位置来进⾏以后的请求304⾃从上次请求后,请求的⽹页未修改过。

服务器返回此响应时,不会返回⽹页内容。

如果⽹页⾃请求者上次请求后再也没有更改过,您应将服务器配置为返回此响应(称为 If-Modified-Since HTTP 标头)。

4XX系列:表⽰请求错误。

代表了客户端看起来可能发⽣了错误,妨碍了服务器的处理。

常见有:401、404状态码。

401状态码:请求要求⾝份验证。

对于需要登录的⽹页,服务器可能返回此响应。

HTTP1.1规范

HTTP1.1规范

HTTP/1.1协议规范(中文归纳版)一、介绍(introduction)1. 目的——HTTP/0.9-〉HTTP/1.0-〉HTTP/1.12. 要求——MUST、REQUIRED、SHOULD3. 术语——连接(Connection)、消息(Message)、请求(Request)、应答(Response)、资源(Resource)、实体(Entity)、表示方法(Representation)、内容协商(Content Negotiation)、变量(Variant)、客户机(Client)、用户代理(User agent)、服务器(Server)、原服务器(Origin server)、代理服务器(Proxy)、网关(gateway)、高速缓存(Cache)、可缓存(Cacheable)、直接(first-hand)、明确终止时间(explicit expiration time)、探索终止时间(heuristic expiration time)、年龄(Age)、保鲜寿命(Freshness lifetime)、保鲜(Fresh)、陈旧(Stale)、语义透明(semantically transparent)、有效性判别器(Validator)、实体标记(entity tag)或最终更改时间(Last-Modified time))、上游/下游(upstream/downstream)、向内/向外(inbound/outbound)4. 总体操作——请求/应答、中介二、符号惯例与一般语法(notational conversions and generic grammar)1. 扩充BNF——name = definition,"literal",rule1 | rule2,(rule1rule2),*rule,[rule],N rule, #rule,; comment, implied *LWS2. 基本规则——OCTET,CHAR,UPALPHA,LOALPHA,ALPHA,DIGIT,CTL,CR,LF,SP,HT,<">三、协议参数(protocol parameters)1. HTTP版本——HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT2. 统一资源标示符(URI)——统一资源定位器(URL)和统一资源名称(URN)的结合,http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]3. 日期/时间格式——Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123,Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036,Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format4. 字符集——本文档中的术语"字符集"指一种用一个或更多表格将一个八字节序列转换成一个字符序列的方法,charset=token失踪字符集5. 内容编码——内容编码主要用来允许文档压缩(信源编码)content-coding= token注册表包含下列标记:gzip,compress,deflate,identity6. 传输编码——目的是能够确保通过网络安全传输(信道编码)transfer-coding = "chunked" | transfer-extensiontransfer-extension = token *( ";" parameter ),成块传输代码7. 媒体类型——media-type = type "/" subtype *( ";" parameter )type = tokensubtype = token规范化和原文缺省多部分类型8. 产品标记——product = token ["/" product-version]product-version = token9. 质量值——qvalue = ( "0" [ "." 0*3DIGIT ] )| ( "1" [ "." 0*3("0") ] )10. 语言标记——language-tag = primary-tag *( "-" subtag )primary-tag = 1*8ALPHAsubtag = 1*8ALPHA11. 实体标记——entity-tag = [ weak ] opaque-tagweak = "W/"opaque-tag = quoted-string12. 范围单位——range-unit = bytes-unit | other-range-unitbytes-unit = "bytes"other-range-unit = token四、HTTP消息(HTTP message)1. 消息类型——HTTP-message = Request | Response ; HTTP/1.1 messages generic-message = start-line *(message-header CRLF) CRLF[ message-body ]start-line = Request-Line | Status-Line2. 消息头——HTTP头域包括常规头,请求头,应答头和实体头域message-header = field-name ":" [ field-value ]field-name = tokenfield-value = *( field-content | LWS )field-content = <the OCTETs making up the field-value and consisting of either *TEXT or combinations of token, separators, and quoted-string> 3. 消息体——message-body = entity-body| <entity-body encoded as per Transfer-Encoding>4. 消息的长度——决定因素5. 常规头域——general-header = Cache-Control| Connection| Date| Pragma| Transfer-Encoding五、请求(request)首行包括利用资源的方式,区分资源的标识,以及协议的版本号Request = Request-Line * (( general-header| request-header|entity-header ) CRLF) CRLF [ message-body ]1. 请求行——Request-Line = Method SP Request-URI SP HTTP-Version CRLF 方法——方法标记指的是在请求URI所指定的资源上所实现的方式Method = "OPTIONS"| "GET"| "POST"| "PUT"| "DELETE"| "TRACE"| "CONNECT"| extension-methodextension-method = token请求URL——请求URL是一种全球统一的应用于资源请求的资源标识符Request-URI = "*" | absoluteURI | abs_path | authority请求行举例:GET /pub/WWW/TheProject.html HTTP/1.1 GET /pub/WWW/TheProject.html HTTP/1.1Host: 2. 请求定义的资源——一个INTERNET请求所定义的精确资源由请求URL和主机报头域所决定3. 请求报头域——request-header = Accept| Accept-Charset|Accept-Encoding| Accept-Language| Authorization| Expect| From| Host|If-Match| If-Modified-Since| If-None-Match| If-Range|If-Unmodified-Since| Max-Forwards| Proxy-Authorization| Range| Referer| TE| User-Agent六、应答(response)接收和翻译一个请求信息后,服务器发出一个HTTP应答信息Response = Status-Line*(( general-header| response-header|entity-header ) CRLF) CRLF [ message-body ]1. 状态行——Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF状态码——状态码是试图理解和满足请求的三位数字的整数码,1xx,2xx,3xx,4xx,5xx,100-〉505-〉扩展码2. 应答报头域——response-header = Accept-Ranges| Age| Location|Proxy-Authenticate| Retry-After| Server| Vary| WWW-Authenticate七、实体(entity)在未经特别规定的情况下,请求与应答的消息也可以传送实体。

【每日一步】HTTP 1.1状态码

【每日一步】HTTP 1.1状态码

HTTP 1.1中的状态码被分为五大类:100-199用于指定客户端应相应的某些动作。

200-299用于表示请求成功。

300-399用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。

400-499用于指出客户端的错误。

500-599用于支持服务器错误。

HttpServletResponse中的常量代表关联不同标准消息的状态码。

在servlet程序中,你会更多地用到这些常量的标识来使用状态码。

例如:你一般会使用response.setStatus(response.SC_NO_CONTENT)而不是response.setStatus(204),因为后者不易理解而且容易导致错误。

但是,你应当注意到服务器允许对消息轻微的改变,而客户端只注意状态码的数字值。

所以服务器可能只返回 HTTP/1.1 200而不是 HTTP/1.1 200 OK。

100(Continue/继续)如果服务器收到头信息中带有100-continue的请求,这是指客户端询问是否可以在后续的请求中发送附件。

在这种情况下,服务器用100(SC_CONTINUE)允许客户端继续或用417 (Expectation Failed)告诉客户端不同意接受附件。

这个状态码是 HTTP 1.1中新加入的。

101(Switching Protocols/转换协议) 101 (SC_SWITCHING_PROTOCOLS)状态码是指服务器将按照其上的头信息变为一个不同的协议。

这是 HTTP 1.1中新加入的。

200(OK/正常) 200 (SC_OK)的意思是一切正常。

一般用于相应GET和POST请求。

这个状态码对servlet是缺省的;如果没有调用setStatus方法的话,就会得到200。

201(Created/已创建) 201 (SC_CREATED)表示服务器在请求的响应中建立了新文档;应在定位头信息中给出它的URL。

202(Accepted/接受) 202 (SC_ACCEPTED)告诉客户端请求正在被执行,但还没有处理完。

HTTP错误代码及网站日志

HTTP错误代码及网站日志

HTTP1xx-信息提示这些状态代码表示临时的响应。

客户端在收到常规响应之前,应准备接收一个或多个1xx响应。

100-继续。

101-切换协议。

2xx-成功这类状态代码表明服务器成功地接受了客户端请求。

200-确定。

客户端请求已成功。

201-已创建。

202-已接受。

203-非权威性信息。

204-无内容。

205-重置内容。

206-部分内容。

3xx-重定向客户端浏览器必须采取更多操作来实现请求。

例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。

301-对象已永久移走,即永久重定向。

302-对象已临时移动。

304-未修改。

307-临时重定向。

4xx-客户端错误发生错误,客户端似乎有问题。

例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。

400-错误的请求。

401-访问被拒绝。

IIS定义了许多不同的401错误,它们指明更为具体的错误原因。

这些具体的错误代码在浏览器中显示,但不在IIS日志中显示:401.1-登录失败。

401.2-服务器配置导致登录失败。

401.3-由于ACL对资源的限制而未获得授权。

401.4-筛选器授权失败。

401.5-ISAPI/CGI应用程序授权失败。

401.7-访问被Web服务器上的URL授权策略拒绝。

这个错误代码为IIS6.0所专用。

403-禁止访问:IIS定义了许多不同的403错误,它们指明更为具体的错误原因:403.1-执行访问被禁止。

403.2-读访问被禁止。

403.3-写访问被禁止。

403.4-要求SSL。

403.5-要求SSL128。

403.6-IP地址被拒绝。

403.7-要求客户端证书。

403.8-站点访问被拒绝。

403.9-用户数过多。

403.10-配置无效。

403.11-密码更改。

403.12-拒绝访问映射表。

403.13-客户端证书被吊销。

403.14-拒绝目录列表。

403.15-超出客户端访问许可。

403.16-客户端证书不受信任或无效。

HTTP请求方式中8种请求方法

HTTP请求方式中8种请求方法

HTTP请求⽅式中8种请求⽅法简单介绍HTTP请求的⽅法:HTTP/1.1协议中共定义了⼋种⽅法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作⽅式HTTP1.0定义了三种请求⽅法: GET, POST 和 HEAD⽅法。

HTTP1.1新增了五种请求⽅法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT ⽅法1、OPTIONS返回服务器针对特定资源所⽀持的HTTP请求⽅法,也可以利⽤向web服务器发送‘*’的请求来测试服务器的功能性2、HEAD向服务器索与GET请求相⼀致的响应,只不过响应体将不会被返回。

这⼀⽅法可以再不必传输整个响应内容的情况下,就可以获取包含在响应⼩消息头中的元信息。

3、GET向特定的资源发出请求。

注意:GET⽅法不应当被⽤于产⽣“副作⽤”的操作中,例如在Web Application中,其中⼀个原因是GET可能会被⽹络蜘蛛等随意访问。

Loadrunner中对应get请求函数:web_link和web_url4、POST向指定资源提交数据进⾏处理请求(例如提交表单或者上传⽂件)。

数据被包含在请求体中。

POST请求可能会导致新的资源的建⽴和/或已有资源的修改。

Loadrunner中对应POST请求函数:web_submit_data,web_submit_form5、PUT向指定资源位置上传其最新内容6、DELETE请求服务器删除Request-URL所标识的资源7、TRACE回显服务器收到的请求,主要⽤于测试或诊断8、CONNECTHTTP/1.1协议中预留给能够将连接改为管道⽅式的代理服务器。

注意:1)⽅法名称是区分⼤⼩写的,当某个请求所针对的资源不⽀持对应的请求⽅法的时候,服务器应当返回状态码405(Mothod Not Allowed);当服务器不认识或者不⽀持对应的请求⽅法时,应返回状态码501(Not Implemented)。

HTTPHTTPS01-不同状态码含义

HTTPHTTPS01-不同状态码含义

HTTPHTTPS01-不同状态码含义HTTP协议状态码,是指在HTTP协议运作中由客户端发出请求连接,服务端建⽴连接,客户端发出HTTP请求,服务端返回响应信息,⽽在这个过程张由于客户端或服务端的问题会返回相应的错误代码并显⽰给⽤户,对应的错误代码表⽰不同的错误信息,根据这个信息⽤户可以调整相应的操作来修改出现的错误,最终避免错误的再现HTTP协议状态码⼀共有5中类别,分别是1xx,2xx,3xx,4xx,5xx ⽤2位数字来表⽰不同的错误: 1XX类状态码信息表⽰:临时的响应。

客户端在收到常规响应之前,应准备接收⼀个或多个1XX响应 2XX类状态码信息表⽰:服务器成功的接收了客户端请求 3XX类状态码信息表⽰:客户端浏览器必须采取更多操作来实现请求。

例如,浏览器可能不得不请求服务器上的不同页⾯,或者通过代理服务器重复该请求 4XX类状态码信息表⽰:发⽣错误,客户端似乎有问题。

例如:客户端请求不存在的页⾯,客户端为提供有效的⾝份验证信息 5XX类状态码信息表⽰:服务器遇到错误⽽不能完成该请求状态码含义100——客户必须继续发出请求101——客户要求服务器根据请求转换HTTP协议版本200——交易成功201——提⽰知道新⽂件的URL202——接受和处理、但处理未完成203——返回信息不确定或不完整204——请求收到,但返回信息为空205——服务器完成了请求,⽤户代理必须复位当前已经浏览过的⽂件206——服务器已经完成了部分⽤户的GET请求300——请求的资源可在多处得到301——删除请求数据302——在其他地址发现了请求数据303——建议客户访问其他URL或访问⽅式304——客户端已经执⾏了GET,但⽂件未变化305——请求的资源必须从服务器指定的地址得到306——前⼀版本HTTP中使⽤的代码,现⾏版本中不再使⽤307——申明请求的资源临时性删除400——错误请求,如语法错误401——请求授权失败402——保留有效ChargeTo头响应403——请求不允许404——没有发现⽂件、查询或URl405——⽤户在Request-Line字段定义的⽅法不允许406——根据⽤户发送的Accept拖,请求资源不可访问407——类似401,⽤户必须⾸先在代理服务器上得到授权408——客户端没有在⽤户指定的饿时间内完成请求409——对当前资源状态,请求不能完成410——服务器上不再有此资源且⽆进⼀步的参考地址411——服务器拒绝⽤户定义的Content-Length属性请求412——⼀个或多个请求头字段在当前请求中错误413——请求的资源⼤于服务器允许的⼤⼩414——请求的资源URL长于服务器允许的长度415——请求资源不⽀持请求项⽬格式416——请求中包含Range请求头字段,在当前请求资源范围内没有range指⽰值,请求也不包含If-Range请求头字段417——服务器不满⾜请求Expect头字段指定的期望值,如果是代理服务器,可能是下⼀级服务器不能满⾜请求500——服务器产⽣内部错误501——服务器不⽀持请求的函数502——服务器暂时不可⽤,有时是为了防⽌发⽣系统过载503——服务器过载或暂停维修504——关⼝过载,服务器使⽤另⼀个关⼝或服务来响应⽤户,等待时间设定值较长505——服务器不⽀持或拒绝⽀请求头中指定的HTTP版本。

HTTP1.1和HTTP1.0的区别(HTTP1.1版本的4个特性)

HTTP1.1和HTTP1.0的区别(HTTP1.1版本的4个特性)

HTTP1.1和HTTP1.0的区别(HTTP1.1版本的4个特性)1、HTTP/1.1默认持久连接和流⽔线 HTTP/1.1默认使⽤持久连接,只要客户端服务端任意⼀端没有明确提出断开TCP连接,就⼀直保持连接,在同⼀个TCP连接下,可以发送多次HTTP请求。

同时,默认采⽤流⽔线的⽅式发送请求,即客户端每遇到⼀个对象引⽤就⽴即发出⼀个请求,⽽不必等到收到前⼀个响应之后才能发出下⼀个请求;但服务器端必须按照接收到客户端请求的先后顺序依次回送相应结果,以保证客户端能够区分出每次请求的相应内容,这样也显著地减少了整个下载过程所需要的时间。

HTTP/1.0默认使⽤短连接,要建⽴长连接,可以在请求消息中包含Connection: Keep-Alive头域;如果服务器愿意维持这条连接,在响应消息中也会包含⼀个Connection: Keep-Alive的头域。

Connection请求头的值为Keep-Alive时,客户端通知服务器返回本次请求资源过后保持连接;Connection请求头的值为close时,客户端通知服务器返回本次请求结果后关闭连接。

2、分块传输数据 HTTP/1.0可⽤来指定实体长度的唯⼀机制是通过Content-Length字段。

静态资源的长度可以很容易的确定;但是对于动态⽣成的响应来说,为获取它的真实长度,只能等它完全⽣成之后,才能正确地填写Content-Length的值,这便要求缓存整个响应,在服务器端占⽤⼤量的缓存,从⽽延长了响应⽤户的时间。

【服务端在没有分块返回所有请求资源的情况下,⾸先会在本地缓存所有动态的请求资源,缓存完成后计算请求资源的实体长度】 HTTP/1.1引⼊了被称为分块(chunked)的传输⽅法。

该⽅法使发送⽅能将消息实体分割为任意⼤⼩的组块(chunk),并单独地发送它们。

在每个组块前⾯,都加上了该组块的长度,使接收⽅可确保⾃⼰能够完整地接收到这个组块。

更重要的是,在最末尾的地⽅,发送⽅⽣成了长度为零的组块,接收⽅可据此判断整条消息都已安全地传输完毕。

http状态码定义(1)

http状态码定义(1)

附录1 状态码定义表1HTTP协议定义状态码表2WAPGW扩展状态码1001---正常1002---终端错误1003---服务端错误HTTP 400 - 请求无效HTTP 401.1 - 未授权:登录失败HTTP 401.2 - 未授权:服务器配置问题导致登录失败HTTP 401.3 - ACL 禁止访问资源HTTP 401.4 - 未授权:授权被筛选器拒绝HTTP 401.5 - 未授权:ISAPI 或CGI 授权失败HTTP 403 - 禁止访问HTTP 403 - 对Internet 服务管理器的访问仅限于LocalhostHTTP 403.1 禁止访问:禁止可执行访问HTTP 403.2 - 禁止访问:禁止读访问HTTP 403.3 - 禁止访问:禁止写访问HTTP 403.4 - 禁止访问:要求SSLHTTP 403.5 - 禁止访问:要求SSL 128HTTP 403.6 - 禁止访问:IP 地址被拒绝HTTP 403.7 - 禁止访问:要求客户证书HTTP 403.8 - 禁止访问:禁止站点访问HTTP 403.9 - 禁止访问:连接的用户过多HTTP 403.10 - 禁止访问:配置无效HTTP 403.11 - 禁止访问:密码更改HTTP 403.12 - 禁止访问:映射器拒绝访问HTTP 403.13 - 禁止访问:客户证书已被吊销HTTP 403.15 - 禁止访问:客户访问许可过多HTTP 403.16 - 禁止访问:客户证书不可信或者无效HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效HTTP 404.1 -无法找到Web 站点HTTP 404- 无法找到文件HTTP 405 - 资源被禁止HTTP 406 - 无法接受HTTP 407 - 要求代理身份验证HTTP 410 - 永远不可用HTTP 412 - 先决条件失败HTTP 414 - 请求- URI 太长HTTP 500 - 内部服务器错误HTTP 500.100 - 内部服务器错误- ASP 错误HTTP 500-11 服务器关闭HTTP 500-12 应用程序重新启动HTTP 500-13 - 服务器太忙HTTP 500-14 - 应用程序无效HTTP 500-15 - 不允许请求global.asaError 501 - 未实现HTTP 502 - 网关错误用户试图通过HTTP 或文件传输协议(FTP) 访问一台正在运行Internet 信息服务(IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。

关于HTTP协议,所有内容都在这里,一篇就够了

关于HTTP协议,所有内容都在这里,一篇就够了

关于HTTP协议,所有内容都在这⾥,⼀篇就够了HTTP简介HTTP协议是Hyper Text Transfer Protocol(超⽂本传输协议)的缩写,是⽤于从万维⽹(WWW:World Wide Web )服务器传输超⽂本到本地浏览器的传送协议。

HTTP是⼀个基于TCP/IP通信协议来传递数据(HTML ⽂件, 图⽚⽂件, 查询结果等)。

HTTP是⼀个属于应⽤层的⾯向对象的协议,由于其简捷、快速的⽅式,适⽤于分布式超媒体信息系统。

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

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

HTTP协议⼯作于客户端-服务端架构为上。

浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

Web服务器根据接收到的请求后,向客户端发送响应信息。

http请求-响应模型.jpg主要特点1、简单快速:客户向服务器请求服务时,只需传送请求⽅法和路径。

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

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

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

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

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

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

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

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

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

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

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

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

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

HTTP之URLHTTP使⽤统⼀资源标识符(Uniform Resource Identifiers, URI)来传输数据和建⽴连接。

常见的HTTP状态码(HTTPStatusCode)说明

常见的HTTP状态码(HTTPStatusCode)说明

常见的HTTP状态码(HTTPStatusCode)说明最近的项⽬,经常会接触⼀些http相关的error code,查询了下相关定义作为熟悉了解。

状态代码有三位数字组成,第⼀个数字定义了响应的类别,且有五种可能取值:1. 1xx:指⽰信息--表⽰请求已接收,继续处理2. 2xx:成功--表⽰请求已被成功接收、理解、接受3. 3xx:重定向--信息不完整需要进⼀步补充4. 4xx:客户端错误--请求有语法错误或请求⽆法实现5. 5xx:服务器端错误--服务器未能实现合法的请求1xx状态码英⽂名称状态码意义100Continue这个临时响应是⽤来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。

客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。

101SwitchingProtocols换协议。

服务器根据客户端的请求切换协议。

只能切换到更⾼级的协议,例如,切换到HTTP的新版本协议。

102Processing由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执⾏。

2xx状态码英⽂名称状态码意义200OK请求成功。

⼀般⽤于GET与POST请求,出现此状态码是表⽰正常状态。

201Created已创建。

成功请求并创建了新的资源202Accepted已接受。

已经接受请求,但未处理完成203Non-AuthoritativeInformation服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,⽽是来⾃本地或者第三⽅的拷贝。

当前的信息可能是原始版本的⼦集或者超集。

204No Content⽆内容。

服务器成功处理,但未返回内容。

在未更新⽹页的情况下,可确保浏览器继续显⽰当前⽂档205Reset Content重置内容。

服务器处理成功,⽤户终端(例如:浏览器)应重置⽂档视图。

可通过此返回码清除浏览器的表单域,以便⽤户能够轻松地开始另⼀次输⼊。

206Partial Content部分内容。

HTTP常见状态码详细解析

HTTP常见状态码详细解析

HTTP常见状态码详细解析HTTP状态码(英语:HTTP Status Code)是⽤以表⽰⽹页服务器超⽂本传输协议响应状态的3位数字代码。

它由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展。

HTTP状态码负责表⽰客户端HTTP请求的返回结果、标记服务端的处理是否正常、通知出现的错误等⼯作。

状态码的类别的由三位数字和原因短语组成,数字的第⼀位数字表⽰响应的类别,后⾯两位⽆类别。

以下有五种类别。

另外只要遵循状态码类别的定义,即使改变RFC2616中定义的状态码,或者服务端⾃⾏创建状态码都可以。

1XX类别:informational 信息性状态码原因短语:接收的请求正在处理2XX类别:success 成功状态码原因短语:请求正常处理完毕3XX类别:redirection 重定向状态码原因短语:需要进⾏附加操作以完成请求4XX类别:client error 客户端错误状态码原因短语:服务器⽆法处理请求5XX类别:server error 服务器错误状态码原因短语:服务器处理请求出错在RFC2616上的http状态码达到40多种,在加上WEBDAV和附加HTTP状态码(RFC6585)等扩展,就有60多种,但常⽤的有以下这些,接下来让我们分别来学习下。

(注:以下的使⽤场景只是举例,不包括所有使⽤场景)1xx Informational 信息响应1XX 是信息响应,表⽰接收的请求正在被处理。

100 Continue (继续)响应结果:信息型状态响应码表⽰⽬前为⽌⼀切正常, 客户端应该继续请求, 如果已完成请求则忽略.使⽤场景:为了让服务器检查请求的⾸部, 客户端必须在发送请求实体前, 在初始化请求中发送 Expect: 100-continue ⾸部并接收 100 Continue 响应状态码.101 Switching Protocols (协议切换)响应结果:表⽰服务器应客户端升级协议的请求(Upgrade请求头)正在进⾏协议切换。

网站服务器返回状态码

网站服务器返回状态码

网站服务器返回状态码在浏览网页时,我们经常会遇到各种各样的状态码。

这些状态码是由网站服务器返回的,用于告诉浏览器当前请求的处理情况。

状态码能够帮助开发人员和用户判断请求是否成功,以及出现错误时如何处理。

本文将介绍一些常见的网站服务器返回状态码及其含义。

1. 1xx - 信息性状态码1xx系列的状态码表示请求已经被接收,服务器正在处理。

常见的1xx状态码有:- 100 Continue:服务器已经接收到请求头,并且客户端应该继续发送请求体。

- 101 Switching Protocols:服务器已经理解了客户端的请求,并将通过Upgrade头将协议切换为不同的协议。

2. 2xx - 成功状态码2xx系列的状态码表示请求已成功被服务器接收、理解和处理。

常见的2xx状态码有:- 200 OK:请求成功,并返回相应的内容。

- 201 Created:请求已成功并创建了新的资源。

- 204 No Content:请求成功,但没有返回任何内容。

3. 3xx - 重定向状态码3xx系列的状态码表示客户端需要进一步的操作才能完成请求。

常见的3xx状态码有:- 301 Moved Permanently:被请求的资源已永久性移动到新位置,并将来所有的请求都应使用新的URL。

- 302 Found:被请求的资源已临时移动到新位置,但将来的请求还要继续使用原始URL。

- 304 Not Modified:客户端可以使用缓存的版本,而不需要再次请求服务器。

4. 4xx - 客户端错误状态码4xx系列的状态码表示客户端发生了错误。

常见的4xx状态码有:- 400 Bad Request:服务器无法理解客户端发送的请求,通常是因为请求语法错误。

- 403 Forbidden:服务器理解请求,但拒绝执行,通常是因为没有权限访问请求的资源。

- 404 Not Found:服务器无法找到请求的资源。

5. 5xx - 服务器错误状态码5xx系列的状态码表示服务器发生了错误。

百度官方http状态码大全

百度官方http状态码大全

2字头(成功)

表示已经成功的处理了代码的状态。常见的有: http状态码 200 (成功) 服务器已成功处理了请求。 通 常,这表示服务器提供了请求的网页。 http状态码 201 (已创建) 请求成功并且服务器创建了 新的资源。 http状态码 202 (已接受) 服务器已接受请求,但尚未 处理。 http状态码 203 (非授权信息) 服务器已成功处理了请 求,但返回的信息可能来自另一来源。 http状态码 204 (无内容) 服务器成功处理了请求,但 没有返回任何内容。 http状态码 205 (重置内容) 服务器成功处理了请求, 但没有返回任何内容。 http状态码 206 (部分内容) 服务器成功处理了部分 GET 请求。
5字头(服务器错误)

这类状态码代表了服务器在处理请求的过程中有错误或 者异常状态发生,也有可能是服务器意识到以当前的软 硬件资源无法完成对请求的处理。 500 (服务器内部错误) 服务器遇到错误,无法完成请 求。 501 (尚未实施) 服务器不具备完成请求的功能。 例如, 服务器无法识别请求方法时可能会返回此代码。 502 (错误网关) 服务器作为网关或代理,从上游服务 器收到无效响应。 503 (服务不可用) 服务器目前无法使用(由于超载或 停机维护)。 通常,这只是暂时状态。 504 (网关超时) 服务器作为网关或代理,但是没有及 时从上游服务器收到请求。 505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

1字头(发送消息)



Leabharlann 这一类型的状态码,代表请求已被接受,需要继续处理。 这类响应是临时响应,只包含状态行和某些可选的响应 头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义 任何 1xx 状态码,所以除非在某些试验条件下,服务器 禁止向此类客户端发送 1xx 响应。常见的有: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。 代码 说明 http状态码 100 (继续) 请求者应当继续提出请求。 服 务器返回此代码表示已收到请求的第一部分,正在等待 其余部分。 http状态码 101 (切换协议) 请求者已要求服务器切换 协议,服务器已确认并准备切换。

HTTP1.0与HTTP1.1的区别

HTTP1.0与HTTP1.1的区别

HTTP1.0与HTTP1.1的区别下⾯主要从⼏个不同的⽅⾯介绍HTTP/1.0与HTTP/1.1之间的差别,当然,更多的内容是放在解释这种差异背后的机制上。

1 可扩展性可扩展性的⼀个重要原则:如果HTTP的某个实现接收到了⾃⾝未定义的头域,将⾃动忽略它。

Ø 在消息中增加版本号,⽤于兼容性判断。

注意,版本号只能⽤来判断逐段(hop-by-hop)的兼容性,⽽⽆法判断端到端(end-to-end)的兼容性。

例如,⼀台HTTP/1.1的源服务器从使⽤HTTP/1.1的Proxy那⼉接收到⼀条转发的消息,实际上源服务器并不知道终端客户使⽤的是HTTP/1.0还是HTTP/1.1。

因此,HTTP/1.1定义Via头域,⽤来记录消息转发的路径,它记录了整个路径上所有发送⽅使⽤的版本号。

Ø HTTP/1.1增加了OPTIONS⽅法,它允许客户端获取⼀个服务器⽀持的⽅法列表。

Ø 为了与未来的协议规范兼容,HTTP/1.1在请求消息中包含了Upgrade头域,通过该头域,客户端可以让服务器知道它能够⽀持的其它备⽤通信协议,服务器可以据此进⾏协议切换,使⽤备⽤协议与客户端进⾏通信。

2 缓存在HTTP/1.0中,使⽤Expire头域来判断资源的fresh或stale,并使⽤条件请求(conditional request)来判断资源是否仍有效。

例如,cache 服务器通过If-Modified-Since头域向服务器验证资源的Last-Modefied头域是否有更新,源服务器可能返回304(Not Modified),则表明该对象仍有效;也可能返回200(OK)替换请求的Cache对象。

此外,HTTP/1.0中还定义了Pragma:no-cache头域,客户端使⽤该头域说明请求资源不能从cache中获取,⽽必须回源获取。

HTTP/1.1在1.0的基础上加⼊了⼀些cache的新特性,当缓存对象的Age超过Expire时变为stale对象,cache不需要直接抛弃stale对象,⽽是与源服务器进⾏重新激活(revalidation)。

解析HTTP(HttpURLConnectiongetResponseCode)

解析HTTP(HttpURLConnectiongetResponseCode)

解析HTTP(HttpURLConnectiongetResponseCode)HTTP 请求客户端通过发送 HTTP 请求向服务器请求对资源的访问。

HTTP 请求由三部分组成,分别是:请求⾏、消息报头和请求征⽂。

3.1、请求⾏请求⾏以⼀个⽅法符号开头,后⾯跟着请求 URI 和协议的版本,以 CRLF (表⽰回车换⾏)作为结尾。

请求⾏以空格分隔,除了作为结尾的 CRLF 外,不允许出现单独的 CR 或 LF 字符。

格式如下:Method Request-URI HTTP-Version CRLF例如:GET /form.html HTTP/1.1 (CRLF)⽅法在 HTTP 协议中,HTTP 请求可以使⽤多种请求⽅法,这些⽅法指明了要以何种⽅式来访问 Request-URI 所标识的资源。

HTTP1.1 ⽀持的请求⽅法如下表所⽰:HTTP1.1 中的请求⽅式⽅法作⽤GET请求获取由 Request-URI 所标识的资源POST请求服务器接收在请求中封装的实体,并将其作为由 Request-Line 中的 Request-URI 所标识的资源的⼀部分HEAD请求获取由 Request-URI 所标识的资源的响应消息报头PUT请求服务器存储⼀个资源,并⽤ Request-URI 作为其标识符DELETE请求服务器删除由 Request-URI 所标识的资源TRACE请求服务器回送到的请求信息,主要⽤于测试或诊断CONNECT保留将来使⽤OPTIONS请求查询服务器的性能,或者查询与资源相关的选项和需求介绍 GET、POST 和 HEAD 三个⽅法:(1)GETGET ⽅法⽤于获取由 Request-URI 所标识的资源的信息,常见的形式是:GET Request-URI HTTP/1.1当我们通过在浏览器的地址栏中直接输⼊⽹址的⽅式去访问⽹页的时候,浏览器采⽤的就是 GET ⽅法向服务器获取资源。

HTTP1.0和HTTP1.1的区别

HTTP1.0和HTTP1.1的区别

HTTP1.0和HTTP1.1的区别1、HTTP 1.1⽀持长连接(PersistentConnection)和请求的流⽔线(Pipelining)处理HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建⽴⼀个TCP连接,服务器完成请求处理后⽴即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。

HTTP 1.1则⽀持持久连接Persistent Connection, 并且默认使⽤persistent connection. 在同⼀个tcp的连接中可以传送多个HTTP请求和响应.多个请求和响应可以重叠,多个请求和响应可以同时进⾏. 更加多的请求头和响应头(⽐如HTTP1.0没有host的字段).在1.0时的会话⽅式:1. 建⽴连接2. 发出请求信息3. 回送响应信息4. 关掉连接HTTP 1.1的持续连接,也需要增加新的请求头来帮助实现,例如,Connection请求头的值为Keep-Alive时,客户端通知服务器返回本次请求结果后保持连接;Connection请求头的值为close时,客户端通知服务器返回本次请求结果后关闭连接。

HTTP 1.1还提供了与⾝份认证、状态管理和Cache缓存等机制相关的请求头和响应头。

请求的流⽔线(Pipelining)处理,在⼀个TCP连接上可以传送多个HTTP请求和响应,减少了建⽴和关闭连接的消耗和延迟。

例如:⼀个包含有许多图像的⽹页⽂件的多个请求和应答可以在⼀个连接中传输,但每个单独的⽹页⽂件的请求和应答仍然需要使⽤各⾃的连接。

HTTP 1.1还允许客户端不⽤等待上⼀次请求结果返回,就可以发出下⼀次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容。

2.HTTP 1.1增加host字段在HTTP1.0中认为每台服务器都绑定⼀个唯⼀的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。

常见的HTTP状态码(HTTPStatusCode)说明

常见的HTTP状态码(HTTPStatusCode)说明

常见的HTTP状态码(HTTPStatusCode)说明作为⼀个互联⽹开发⼈员对于⼀些服务器返回的HTTP状态的意思都必须是了如指掌的,只有将这些状态码⼀⼀弄清楚,⼯作中遇到的各种问题才能够处理的得⼼应⼿。

好了,下⾯就让我们来了解⼀下⽐较常见的HTTP状态码吧!2开头(请求成功)表⽰成功处理了请求的状态代码。

200 (成功)服务器已成功处理了请求。

通常,这表⽰服务器提供了请求的⽹页。

201 (已创建)请求成功并且服务器创建了新的资源。

202 (已接受)服务器已接受请求,但尚未处理。

203 (⾮授权信息)服务器已成功处理了请求,但返回的信息可能来⾃另⼀来源。

204 (⽆内容)服务器成功处理了请求,但没有返回任何内容。

205 (重置内容)服务器成功处理了请求,但没有返回任何内容。

206 (部分内容)服务器成功处理了部分 GET 请求。

3开头(请求被重定向)表⽰要完成请求,需要进⼀步操作。

通常,这些状态代码⽤来重定向。

300 (多种选择)针对请求,服务器可执⾏多种操作。

服务器可根据请求者 (user agent) 选择⼀项操作,或提供操作列表供请求者选择。

301 (永久移动)请求的⽹页已永久移动到新位置。

服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会⾃动将请求者转到新位置。

302 (临时移动)服务器⽬前从不同位置的⽹页响应请求,但请求者应继续使⽤原有位置来进⾏以后的请求。

303 (查看其他位置)请求者应当对不同的位置使⽤单独的 GET 请求来检索响应时,服务器返回此代码。

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

服务器返回此响应时,不会返回⽹页内容。

305 (使⽤代理)请求者只能使⽤代理访问请求的⽹页。

如果服务器返回此响应,还表⽰请求者应使⽤代理。

307 (临时重定向)服务器⽬前从不同位置的⽹页响应请求,但请求者应继续使⽤原有位置来进⾏以后的请求。

4开头(请求错误)这些状态代码表⽰请求可能出错,妨碍了服务器的处理。

http协议中各个响应状态200_301_404_500等返回值含义快速一览

http协议中各个响应状态200_301_404_500等返回值含义快速一览

http协议中各个响应状态200_301_404_500等返回值含义快速⼀览⼀、定义从HTTP的定义可以看出,HTTP协议是互联⽹上进⾏数据通信的基础协议,⽤来交换或传输超⽂本。

超⽂本是⼀种结构化的⽂本,在包含⽂本的节点之间使⽤逻辑链接(也叫超链接)。

⼆、概述HTTP是基于TCP/IP协议的应⽤层协议。

HTTP允许进⾏客户端和服务器之间的通信。

通过HTTP或HTTPS请求的资源由URI(统⼀资源标识符)或URL(统⼀资源定位符)来标识。

在客户端-服务器的模式中,HTTP扮演着请求-响应协议的⾓⾊。

客户端(通常是浏览器)提交HTTP请求消息给服务器。

服务器可以提供HTML⽂件或其他类型的资源,或者代表客户端执⾏操作,返回响应消息给客户端。

响应包含关于请求的完整状态信息。

三、历史1、HTTP/0.9该版本于1991年发布。

只接受GET⼀种请求⽅法,没有指定版本号,且不⽀持请求头。

服务器只能返回HTML格式的字符串。

2、HTTP/1.0该版本于1996年发布。

除了GET⽅法,还新增了POST和HEAD。

任何格式的内容都可以发送。

请求和响应的格式,除了数据部分,还包括头信息,⽤来描述元数据。

新增了状态码、多字符集⽀持、权限、缓存、内容编码等功能。

3、HTTP/1.1该版本于1997年发布。

对1.0版本进⾏了修订和完善,并⼀直沿⽤⾄今。

新增了PUT、PATCH、OPTIONS、DELETE等⽅法。

客户端请求的头信息新增了Host字段,⽤来指定服务器的域名,这样就可以将请求发往同⼀台服务器的不同⽹站。

新增了持久连接,可以被多个请求多次使⽤。

新增了管道机制,在同⼀个TCP连接⾥,客户端可以同时发送多个请求,但服务器还是按照顺序进⾏响应。

使⽤Content-Length声明本次响应的数据长度,以区分多个响应。

4、HTTP/2该版本于2015年发布。

头信息和数据都是⼆进制,统称为帧。

对头信息进⾏了压缩。

在⼀个TCP连接中,客户端可以同时发送多个请求或接收响应,不需要按照顺序⼀⼀对应。

常用响应状态码含义

常用响应状态码含义

常用响应状态码含义HTTP协议是一个基于客户端-服务器模型的协议,在客户端和服务器之间进行通信。

在HTTP通信中,客户端请求一个资源时,服务器会返回一个响应。

HTTP响应消息由一个状态行、首部和消息体组成。

状态行包括HTTP 版本、状态码和原因短语。

状态码表示服务器对请求的处理结果,它由三位数字组成。

下面是一些常用的HTTP响应状态码及其含义。

1xx信息类:1. 100 Continue服务器已经收到请求头部信息,并且请求正在处理。

客户端应该继续发送请求的请求体(在需要发送请求体的请求种)或者,如果请求已经完成,忽略这个响应。

2. 101 Switching Protocols客户端请求协议转换。

服务器已经确认,并且改变了协议。

例如,HTTP/1.1中的request是使用HTTP/1.1,服务器可能会返回这个状态码表示协议切换到了WebSocket。

2xx成功类:1. 200 OK请求成功。

客户端请求已成功被服务器接收、理解、并接受。

2. 201 Created请求已经被服务器成功处理,新的资源已经被创建。

例如在创建一个新用户时,服务器会返回201状态码,并在response header里面包含一个资源链接。

3. 204 No Content请求已成功,但是没有返回任何数据。

通常在DELETE操作时使用。

3xx重定向类:1. 301 Moved Permanently请求的资源已经永久转移(例如更换域名),新的URL在响应中给出,并且应该被客户端记住,所有后续的请求应该使用新的URL代替。

2. 302 Found请求的资源暂时被转移到另一个URL,新的URL在响应中给出,并且客户端应该继续使用原有URL。

3. 304 Not Modified客户端使用缓存的数据进行了条件请求,服务器已经确认数据未发生改变。

这种情况下,响应消息体中不含实体的主体部分。

4xx 客户端错误类:1. 400 Bad Request请求的语法有误,服务器无法处理此请求。

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

HTTP 状态代码及其含义下表显示了常见的HTTP 状态代码以及它们对应的状态信息和含义。

应当谨慎地使用那些只有HTTP 支持的状态代码,因为许多浏览器还只能够支持HTTP 。

如果你使用了HTTP 特有的状态代码,最好能够检查一下请求的HTTP版本号。

HTTP的早期版本为HTTP/,它适用于各种数据信息的简洁快速协议,但是其远不能满足日益发展各种应用的需要。

但HTTP/作为HTTP协议具有典型的无状态性:每个事务都是独立进行处理的,当一个事务开始就在客户与服务器之间建立一个连接,当事务结束时就释放这个连接。

HTTP/包含Simple-Request&Simple-Responsed的报文结构。

但是客户无法使用内容协商,所以服务器也无法返回实体的媒体类型。

1982年,Tim Berners-Lee提出了HTTP/,在此后的不断丰富和发展中,HTTP/成为最重要的面向事务的应用层协议。

该协议对每一次请求/响应,建立并拆除一次连接。

其特点是简单、易于管理,所以它符合了大家的需要,得到了广泛的应用。

其缺点是仍会发生下列问题:对用户请求响应慢、网络拥塞严重、安全性等。

1997年形成的HTTP/,也就是现在普遍使用的协议,在持续连接操作机制中实现流水方式,即客户端需要对同一服务器发出多个请求时,其实现在多数的网页都是有多部分组成(比如多张图片),可用流水线方式加快速度,流水机制就是指连续发出多个请求并等到这些请求发送完毕,再等待响应。

这样就大大节省了单独请求对响应的等待时间,使我们得到更快速的浏览。

另外,HTTP/服务器端处理请求时按照收到的顺序进行,这就保证了传输的正确性。

当然,服务器端在发生连接中断时,会自动的重传请求,保证数据的完整性。

HTTP/还提供了身份认证、状态管理和Cache缓存等机制。

这里,我想特别提一下关于HTTP/中的Cache缓存机制对HTTP/的不足之处的改进,它严格全面,既可以减少时间延迟、又节省了带宽。

HTTP/采用了内容协商机制,选择最合适的用户的内容表现形式。

现在,很多地方都有用到的虚拟主机技术在HTTP/中也可以实现。

所谓的虚拟主机技术,就是同一主机地址实际对应多台主机。

通俗的讲,当你同时在一个网站申请两个主页时,用协议分析仪可以发现其实这两个主页对应的是同一个IP 地址。

这样用多台完全相同的机器形成WWW服务器就可以提高处理的吞吐量。

传统的解决方案是改造域名服务器使其可以根据一定的算法将同一域名解释成不同的IP地址。

分别对应虚拟主机的每台机器,其缺点是要求每台机器占用完全独立的IP地址,这与IP地址的缺乏是相矛盾的。

HTTP/提供的解决方案在HTTP协议自身中加入了指定不同主机的功能,从而多台主机可以共享一个IP地址,既提高了性能又便于管理。

因为HTTP/是Internet现行的标准协议,这里详细介绍其相关语法。

首先,HTTP/格式可写为:[img:8d94cc43ef]其中请求方法是请求一定的Web页面的程序或用于特定的URL。

可选用下列几种:GET:请求指定的页面信息,并返回实体主体。

HEAD:只请求页面的首部。

POST:请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。

PUT:从客户端向服务器传送的数据取代指定的文档的内容。

DELETE:请求服务器删除指定的页面。

OPTIONS:允许客户端查看服务器的性能。

TRACE:请求服务器在响应中的实体主体部分返回所得到的内容。

PATCH:实体中包含一个表,表中说明与该URI所表示的原内容的区别。

MOVE:请求服务器将指定的页面移至另一个网络地址。

COPY:请求服务器将指定的页面拷贝至另一个网络地址。

LINK:请求服务器建立链接关系。

UNLINK:断开链接关系。

WRAPPED:允许客户端发送经过封装的请求。

Extension-mothed:在不改动协议的前提下,可增加另外的方法。

比如:GET / HTTP/Accept: text/plain /*纯ASCII码文本文件*/Accept: text/html /*HTML文本文件*/User-Agent:Mozilla/(WinNT)说明浏览器使用Get方法请求文档/。

浏览器则只允许接收纯ASCII码文本文件和HTML文本文件,其使用的引擎是Mozilla/(Netscape)。

当服务器响应时,其状态行的信息为HTTP的版本号,状态码,及解释状态码的简单说明。

现将5类状态码详细列出:①客户方错误100继续101交换协议②成功200 OK201 已创建202接收203非认证信息204无内容205 重置内容206部分内容③重定向300 多路选择301永久转移302暂时转移303参见其它304 未修改(Not Modified)305使用代理④客户方错误400错误请求(Bad Request)401 未认证402 需要付费403禁止(Forbidden)404未找到(Not Found)405方法不允许406不接受407需要代理认证408请求超时409冲突410 失败411 需要长度412条件失败413 请求实体太大414 请求URI太长415 不支持媒体类型⑤服务器错误500服务器内部错误501未实现(Not Implemented)502网关失败504 网关超时505 HTTP版本不支持比如:(在《TELNET……》一文中用telnet登陆80端口,相同的方法用在HTTP/中,会发现没有显示,下面补充说明之)telnet 80HEAD / HTTP/host: /*本行为输入内容*/HTTP/ 501 Method Not ImplementedDate: Web, 01 Nov 2000 07:12:29 GMT /*当前的日期/时间*/Server: Apache/ (Unix) /*Web服务器信息*/Allow: GET, HEAD, OPTION, TRACE /*支持的方法类型*/Connection: closeConnect-Type: Text/html; charset=iso-8859-1/*连接的媒体类型*/<!DOCTYPE HTML PUBLIG "-P>Invalid method in request head / htp/<P><HR><ADDRESS>Apache/ Server at Port 80</ADDRESS></BODY></HTML>关于实体头部的内容还可以有:Last Modified :请求文档的最近修改时间。

Expires :请求文档的过期时间。

Connect-length:文档数据的长度。

WWW-authenricate:通知客户端需要的认证信息。

Connect-encoding :说明有无使用压缩技术。

Transfer-encoding :说明采用的编码变换类型。

随着Internet的发展,下一代的HTTP协议HTTP-ng已经在酝酿之中,它将会提供更好的安全性、更快的速度,其改进要点为:模块化强、网络效率高、安全性更好、结构更简单。

HTTP协议是我们网络中必不可少的重要协议。

那么下面我们就来对这方面的问题进行一下深入讲解。

那么我们就针对GET方法实现HTTP协议的具体操作进行一下分析。

HTTP协议用于在Internet上发送和接收消息HTTP协议是一种请求-应答式的协议客户端发送一个请求,服务器返回该请求的应答,所有的请求与应答都是HTTP包HTTP协议使用可靠的TCP连接,默认端口是80HTTP的第一个版本是HTTP/,后来发展到了HTTP/,现在最新的版本是HTTP/HTTP/由RFC 2616 定义?在HTTP中,Client/Server之间的会话总是由客户端通过建立连接和发送HTTP 请求包初始化,服务器不会主动联系客户端或要求与客户端建立连接浏览器和服务器都可以随时中断连接,例如,在浏览网页时你可以随时点击“停止"按钮中断当前的文件下载过程,关闭与Web服务器的HTTP连接?1 HTTP请求包HTTP请求包(GETPOST等请求方法)由三个部分构成,分别是:方法-URI-协议/版本,请求头,请求正文下面是一个HTTP协议请求包(GET)的例子:/ HTTP/: zh-cn: Keep-Alive:: 37=new_andy&password=new_andy请求包的第一行是方法-URI-协议/版本:GET就是请求方法,根据HTTP标准,HTTP协议请求可以使用多种请求方法HTTP 支持七种请求方法:GETPOSTHEADOPTIONSPUTDELETE和TRACE等,常用的为请求方法是GET和POST?/表示URIURI指定了要访问的网络资源HTTP/是协议和协议的版本?最后一行userName=new_andy&password=new_andy为正文,正文与HTTP头部有一个空行(rn)分隔这里需要说明的一点,其中Content-Length说明正文的长度,有的正文长度没有在头部说明,只是标明Transfer-Encoding: chunked关于chunked 类型的长度计算方法,见RFC 1626?请求包的头部还会包含许多有关客户端环境和请求正文的有用信息,这里不再描述?2 HTTP协议应答包和HTTP请求包相似,由三个部分构成,分别是:协议-状态代码-描述,应答头,应答正文下面是一个HTTP应答的例子:200 OK: Microsoft-IIS/: Mon, 3 Jan 2005 13:13:33 GMT: text/html: Mon, 11 Jan 2004 13:23:42 GMT: 907.<html>8.<head>9.<title>解读HTTP包示例</title></head><body>WORLD!11.</body>12.</html>HTTP应答包的第一行类似于HTTP协议请求的第一行,表示所用的协议是HTTP ,服务器处理请求的状态码200?应答头也和请求头一样包含许多有用的信息,例如服务器类型日期时间内容类型和长度等应答的正文就是服务器返回的HTML页面应答头和正文之间也用CRLF分隔。

相关文档
最新文档