• http请求报文


    1、HTTP的请求报文格式
     
    首先,来看看HTTP的请求报文的报文格式,如下图所示:
     
    第一行是请求行,请求行有3个字段,方法字段、URL字段和HTTP版本字段。方法字段可以取值GET、POST、HEAD、PUT和DELETE等,绝大多数请求使用GET方法。其后继行叫做首部行。当使用GET方法时,实体主体通常为空,而当使用POST方法时,实体主体通常为需要POST给服务器的内容,例如,我们在网页上输入的数据。
     
    下面,给出一个真正的HTTP请求报文,如下:
    GET /xxx/page.html HTTP/1.1
    Connection: close
    User-agent:Mozilla/4.0
    Accept-language: fr
     
    跟上图对应,这个报文第一行表示请求行,浏览器向服务器请求一个对象,使用了GET方法,它的地址在URL字段中,为/xxx/page.html,所使用的HTTP版本为1.1。
     
    其余的行为首部行,冒号前的是首部字段名,后面是字段的值。
    Host: www.xxx.com 定义了目标所在的主机,首部行提供的信息是Web代理高速缓存所要求的。
    Connection: close 它告诉服务器不希望使用持久连接,它要求服务器在发送完被请求的对象后就关闭连接。
    User-agent:Mozilla/4.0 用来定义用户代理,即向服务器发送请求的浏览器类型,这里为Netscape浏览器。
    Accept-language: fr 表示用户想得到该对象的法语版本。
     
    2、HTTP响应报文格式
     
    HTTP响应报文格式与HTTP请求报文有点不同,HTTP的响应报文格式如下图所示:
     
    我们可以看到它同样由三部分组成,第一行为状态行,其后的为首部行,最后的为要发送的实体主体。实体主体部分是报文的主体,即它包含了所请求的对象本身。
     
    下面来看看一个真实的HTTP响应报文,如下:
    HTTP/1.1 200 OK
    Connection: close
    Data: Thu, 03, Jul, 2013 00:00:00 GMT
    Server: Apache/1.3.0 (Unix)
    Last-Modified: Sun, 6, May 2007 09:23:24 GMT
    Content-Type: text/html
     
    (data ... data ...)
     
    首先看一看第一行,它对应上图中的状态行,在该报文中,状态行指示服务器使用的协议是HTTP/1.1,状态码为200,短语为OK,表示一切正常,信息包含在返回的响应报文中。
     
    第2到5行为首部行,
    Connection: close 告诉客户机在报文发送完后关闭该TCP连接。
    Data 首部行指示服务器产生并发送该响应报文的日期和时间,它是服务器从它的文件系统中检索到该对象,插入到响应报文的时间。
     
    Server 首部行表明该报文是由一个Apache Web服务器产生的,它类似于请求报文中的User-agent首部行。
    Last-Modified 首部行指示了该对象创建或者最后修改的时间和日期。
    Content-Type 首部行指示了实体主体中的对象的文件类型,对象类型应该正式地使用该首部行而不是用文件扩展名来指示,因为在某些系统(如Linux),文件的类型并不是用扩展名为区分的。
     
    Content-Length 首部行表明了被发送对象的字节数。
     
    3、常见的HTTP状态码和短语
    200 OK:请求成功,信息包含在返回的响应报文中。
    301 Moved Permanently:请求的对象已经被永久转移了,新的URL定义在响应报文的Location 首部行中指定。客户机可自动用新的URL获取该对象。
    400 Bad Repuest:一个通用差错代码,指示该请求不能被服务器所理解。
    404 Not Found:被请求的文档不在服务器上。
    505 HTTP Version Not Supported:服务器不支持请求报文使用的HTTP协议版本。
  • 相关阅读:
    PHP 包含文件路径问题
    PHP显示今天、今月、上月、今年的起点/终点时间戳
    PHP Web基础教程
    php如何生成随机密码的几种方法
    You don't have permission to access /~whpc on this server.
    linux 网络 PING IP可以通,ping域名ping不通
    CPU : 二级缓存容量
    简单建立个人WEB网站
    MKL程序编译与连接:Lapack篇
    ldd命令原理与使用
  • 原文地址:https://www.cnblogs.com/minshia/p/6785453.html
Copyright © 2020-2023  润新知