http协议和状态码摘要

HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW即World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

特点

HTTP协议的主要特点可概括如下:

  1. 支持客户/服务器模式。支持基本认证和安全认证。
  2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  3. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  4. HTTP 0.9和1.0使用非持续连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。HTTP 1.1使用持续连接:不必为每个web对象创建一个新的连接,一个连接可以传送多个对象。
  5. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

工作流程

一次HTTP操作称为一个事务,其工作过程可分为四步:

  1. 首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
  2. 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
  3. 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
  4. 客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
    如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。

头域

每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。

*请求信息

发出的请求信息格式如下:

  • 请求行 - 例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件。
  • 请求头 - 例如Accept-Language: en
  • 空行
  • 可选的消息体 - 请求行和标题必须以<CR><LF>作为结尾(也就是,回车然后换行)。空行内必须只有<CR><LF>而无其他空格。在HTTP/1.1协议中,所有的请求头,除post外,都是可选的。

*请求方法

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式:

  • OPTIONS - 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*’的请求来测试服务器的功能性。
  • HEAD- 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。
  • GET - 向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在web app中。其中一个原因是GET可能会被网络蜘蛛等随意访问。
  • POST - 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
  • PUT - 向指定资源位置上传其最新内容。
  • DELETE - 请求服务器删除Request-URI所标识的资源。
  • TRACE- 回显服务器收到的请求,主要用于测试或诊断。
  • CONNECT - HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
  • PATCH - 用来将局部修改应用于某一资源,添加于规范RFC5789。

*响应信息

客户端向服务器发送一个请求,服务器以一个状态行作为响应,响应的内容包括:消息协议的版本、成功或者错误编码、服务器信息、实体元信息以及必要的实体内容。根据响应类别的类别,服务器响应里可以含实体内容,但不是所有的响应都有实体内容。

*响应头域

服务器需要传递许多附加信息,这些信息不能全放在状态行里。因此,需要另行定义响应头域,用来描述这些附加信息。响应头域主要描述服务器的信息和Request-URI的信息。

*http常见的请求头

  • If-Modified-Since
  • If-None-Match
  • Pragma
  • Cache-Control
  • Accept
  • Accept-Encoding
  • Accept-Language
  • Accept-Charset
  • User-Agent
  • Content-Type
  • Referer
  • Connection
  • Host
  • Cookie
  • Content-Length
  • Authorization
  • UA-Pixels,UA-Color,UA-OS,UA-CPU
  • From
  • Range

*http常见的响应头

  • Allow
  • Date
  • Expires
  • P3P
  • Set-Cookie
  • ETag
  • Last-Modified
  • Content-Type
  • Content-Range
  • Content-Length
  • Content-Encoding
  • Content-Language
  • Server
  • X-AspNet-Version
  • X-Powered-By
  • Connection
  • Location
  • Refresh
  • WWW-Authenticate

状态码

  • 1XX 信息提示状态码

    • 100 Continue(继续)
    • 101 Switching Protocols(切换协议)
  • 2XX 成功状态码
    • 200 OK
    • 201 Created(已创建)
    • 202 Accepted(已接受)
    • 203 Non-Authoritative Information(非权威信息)
    • 204 No Content(没有内容)
    • 205 Reset Content(重置内容)
    • 206 Partial Content(部分内容)
  • 3XX 重定向状态码
    • 300 Multiple Choices(多项选择)
    • 301 Moved Permanently(永久移除)
    • 302 Found(已找到)
    • 303 See Other(参见其他)
    • 304 Not Modified(未修改)
    • 305 Use Proxy(使用代理)
    • 306 未使用
    • 307 Temporary Redirect(临时重定向)
  • 4XX 客户端错误状态码
    • 400 Bad Request(坏请求)
    • 401 Unauthorized(未授权)
    • 402 Payment Required(要求付款)
    • 403 Forbidden(禁止)
    • 404 Not Found(未找到)
    • 405 Method Not Allowed(不允许使用的方法)
    • 406 Not Acceptable(无法接受)
    • 407 Proxy Authentication Required(要求进行代理认证)
    • 408 Request Timeout(请求超时)
    • 409 Conflict(冲突)
    • 410 Gone(消失了)
    • 411 Length Required(要求长度指示)
    • 412 Precondition Failed(先决条件失败)
    • 413 Request Entity Too Large(请求实体太大)
    • 414 Request URI Too Long(请求URI太长)
    • 415 Unsupported Media Type(不支持的媒体类型)
    • 416 Requested Range Not Satisfiable(所请求的范围未得到满足)
    • 417 Expectation Failed(无法满足期望)
  • 5XX 服务器错误状态码
    • 500 Internal Server Error(内部服务器错误)
    • 501 Not Implemented(未实现)
    • 502 Bad Gateway(网关故障)
    • 503 Service Unavailable(未提供此服务)
    • 504 Gateway Timeout(网关超时)
    • 505 HTTP Version Not Supported(不支持的HTTP版本)
时间: 2024-10-24 09:38:34

http协议和状态码摘要的相关文章

HTTP协议 (六) 状态码详解

HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了.  如果是做AJAX,REST,网络爬虫,机器人等程序.还是需要了解其他状态码.  本文我花了一个多月的时间把所有的状态码都总结了下,内容太多,看的时候麻烦耐心点了. HTTP状态码的学习资料到处都有,但是都是理论上讲解.  本文介绍HTTP协议中的HTTP状态码(HTTP Status Code), 会对大部分的状态码都进行了详细的实例讲

HTTP协议的状态码

对于Web编程人员来说,熟悉了解HTTP协议的状态码是很有必要的,很多时侯可能根据HTTP协议的状态码很快就能定位到错误信息!今天整理了一下所有HTTP状态码. HTTP状态码(HTTP Status Code)是用来表示网页服务器HTTP 响应状态的3位数字代码.它由RFC 2616规范定义的,并得到RFC 2518.RFC 2817.RFC 2295.RFC 2774.RFC 4918等规范扩展.所有状态码的第一个数字代表了响应的五种状态之一. HTTP/1.1定义的状态码值和对应的原因短语

http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码

http协议的状态码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码. 100(继续) 请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换. 2xx(成功) 表示成功处理了请求的状态码. 200(成功) 服务器已成功处理了请求.通常,这表示服务器提供了请求的网页.如果是对您的 robots.txt 文件显示此状态码,则表示 Googlebot 已成功检索到该文件. 201(

http协议的状态码 200、301、304、404、502 HTTP状态码解释

在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于404状态页面设置不正常,导致了google管理员工具无法验证的情况,当然,影响的不仅仅是这一方面,影响的更是网站的整体浏览效果.因此,比较清楚详细的了解http状态码的具体含义,对于一个网站站长来说,这是很有必要俱备的网站制作基础条件. 如果某项请求发送到您的服务器要求显示您网站上的某个网页(例如

HTTP协议之状态码详解

转自:http://www.cnblogs.com/TankXiao/ 什么是HTTP状态码 HTTP状态码的作用是:Web服务器用来告诉客户端,发生了什么事. 状态码位于HTTP Response 的第一行中,会返回一个”三位数字的状态码“和一个“状态消息”. ”三位数字的状态码“便于程序进行处理, “状态消息”更便于人理解. 状态码分类 HTTP状态码被分为五大类, 目前我们使用的HTTP协议版本是1.1, 支持以下的状态码.随着协议的发展,HTTP规范中会定义更多的状态码.   已定义范围

HTTP协议 (六) ---状态码

状态码 201-206都表示服务器成功处理了请求的状态代码,说明网页可以正常访问. 200(成功)  服务器已成功处理了请求.通常,这表示服务器提供了请求的网页. 201(已创建)  请求成功且服务器已创建了新的资源. 202(已接受)  服务器已接受了请求,但尚未对其进行处理. 203(非授权信息)  服务器已成功处理了请求,但返回了可能来自另一来源的信息. 204(无内容)  服务器成功处理了请求,但未返回任何内容. 205(重置内容) 服务器成功处理了请求,但未返回任何内容.与 204 响

HTTP协议常用状态码

常用的状态码不多,约有14种. 1** 类状态码称之为Information 状态吗,表示信息正在处理. 2** 类状态码称为为Success状态码,表示请求正常完成. 3**类状态码称之为Redirection 状态码,表示需要客户端进行附加操作(如跳转.重定向) 4**类状态码称之为Error状态码,通常是由于客户端的错误导致的. 5**类状态吗称为Server Error状态码,通常是服务端的错误导致的. 小结下:状态码分为客户端错误状态码.服务端错误状态码.成功状态码,重定向状态码等.

三方面搞定http协议之“状态码”

当我们向服务器请求数据的时候,服务器会给我们一个反馈,告诉我们对待我们的请求,服务器处理得怎么样了,而这个反馈,是通过数字来传达的,这个数字就叫状态码. 状态码分为以下几种: 1xx:指示信息--表示请求已接收,继续处理. 2xx:成功--表示请求已被成功接收.理解.接受. 3xx:重定向--要完成请求必须进行更进一步的操作. 4xx:客户端错误--请求有语法错误或请求无法实现. 5xx:服务器端错误--服务器未能实现合法的请求. 常见状态代码.状态描述的说明如下. 200 OK:客户端请求成功

HTTP协议中状态码的含义

代码 说明 100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换. 2xx (成功) 表示成功处理了请求的状态代码. 代码 说明 200 (成功) 服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页. 201 (已创建) 请求成功并且服务器创建了新的资源. 202 (已接受) 服务器已接受请求,但尚未处理. 203 (非授权信息) 服务器已成功处理了请求,但返回