HTTP协议②

来源:互联网 发布:js获取style属性 编辑:程序博客网 时间:2024/06/04 23:57
HTTP协议有两类报文:请求报文——从客户端向服务器发送的请求报文。响应报文——从服务器到客户端回答的响应报文。具体结构见下图

请求报文

响应报文

HTTP请求报文和响应报文都是由三部分组成的,通过比较可以看出,这两种报文的格式区别是开始行不同的。(1)开始行,用于区别是请求报文还是响应报文。在请求报文中的开始行叫做请求行(Request-Line),而在响应报文中的开始行叫做状态行(Status-Line)。在开始行的三个字段之间都以空格分隔开,最后的“CR”和“LF”分别代表“回车”和“换行”。(2)首部行,用来说明浏览器、服务器或报文主体的一些信息。首部可以有好几个,但也可以不使用。在每一个首部行中都有首部字段名和它的值,每一行在结束的地方都要“回车”和“换行”。(3)实体主体(entity body),在请求报文中一般都不用这个字段,而在响应报文中也可能没有这个字段。下面先介绍HHTP协议请求报文最主要的一些特点。请求报文的第一行“请求行”只有三个内容,即方法,请求资源的URL以及HTTP的版本。注意,这里的方法(method)是面向对象技术中使用的专有名词。所谓“方法”就是对所请求的对象进行的操作,这些方法实际上也就是一些命令。常用的方法如下:GET  请求访问已被URL标志的资源,指定的资源经服务器端解析后返回响应内容。POST 传输实体主体,其主要目的并不是获取响应的主体内容。PUT 在指明的URL下存储一个文件,要求在请求报文的主体中包含文件内容,然后保存到请求URL指定的位置。HEAD 请求读取由URL所标志的信息的首部,不返回报文主体部分。一般用于确认URL的有效性及资源更新的日期时间等。DELETE 删除指明的URL所标志的资源。OPTIONS 请求一些选项的信息,一般用来查询针对请求URL指定的资源支持的方法。TRACE 用来进行环回测试的请求报文。CONNECT 用于代理服务器。要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。例如,GET /chn/yxsz/index.htm HTTP/1.1   再看看HTTP协议响应报文的主要特点。状态行包括三项内容,即HTTP的版本,状态码,以及解释状态码的简单短语。状态码的职责是当客户端向服务器发送请求时,描述返回的请求结果。借助于状态码,用户可以知道服务器是正常处理了请求。还是出现了错误。经常使用的状态码只有14种,下面一一介绍。信息性状态码1XX,表示接收的请求正在处理。成功状态码2XX,表示请求正常处理完毕。(1)200 OK 表示从客户端发来的请求在服务器端被正常处理了。(2)204 No Content 表示服务器接收的请求已经成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。(3)206 Partial Content 表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。重定向状态码3XX,表示需要进行附加操作以完成请求。(1)301 Moved Permanently 永久性重定向,表示请求的资源已经被分配了新的URL,以后应使用资源现在所指的URL。(2)302 Found 临时性重定向,该状态码表示请求的资源已经被分配了新的URL,希望用户本次能使用新的URL访问。(3)303 See Other 表示由于请求对应的资源存在另一个URL,应使用GET方法定向获取请求的资源。(4)304 Not Modified 表示客户端发送附带条件的请求时,服务器端允许请求访问资源。(5)307 Temporary Redirect 临时重定向。客户端错误状态码4XX,表示服务器无法处理请求。(1)400 Bad Request 表示请求报文中存在语法错误。(2)401 Unauthorized 表示发送的请求需要有通过HTTP认证的认证信息。(3)403 Forbidden 表示对请求资源的访问被服务器拒绝了。(4)404 Not Found 表示服务器无法找到请求的资源。服务器错误状态码5XX,表示服务器处理请求出错。(1)500 Internal Server Error 表示服务器端在执行请求时发生了错误。(2)503 Service Unavailable 表示服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。例如, HTTP/1.1 404 Not Found
0 0
原创粉丝点击