HTTP学习笔记(请求与相应)-HXC博客
  •  首页
  •  游戏/动漫
  •  日记/生活
  •  时间轴
  •  留言板
  • 
    HTTP学习笔记(请求与相应)
     作者: ananan_l  发布时间:2017-10-21 17:18:30  访客:254

    无论是请求消息还是响应消息都由4个部分组成:首行首部字段行区空行消息主题

    请求消息

    一般由一个请求行、0到多个首部字段行、一个空行消息主体构成

    GET /hello.htm HTTP/1.1User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)Host: example.comAccept-Language: en-usAccept-Encoding: gzip, deflate

    请求行

    包含:请求方法资源标识符HTTP版本

    请求方法

    常用请求方法包括:GET、POST、HEAD、PUT、DELETE、CONNECT、OPTIONS、TRACE

    GET: 表示我要请求一个指定名称的资源。
    PUT: 表示如果指定URL不存在就创建它,否则就修改它。资源数据由消息主体提供。
    POST: 表示要创建一个新的子资源,或者更新一个存在的资源。资源数据由消息主体提供。
    DELETE: 表示我要删除一个指定名称的资源。
    OPTIONS: 允许客户端查看服务器的性能。 
    HEAD: 只请求页面的首部。
    TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。

    PUT和POST区别:
    PUT是幂等性的,而POST不具备幂等性;体现在如果你重复一次提交POST创建子资源的请求,会导致创建两个子资源,而PUT在第二次重复提交时,只是更新子资源而已。

    首部字段

    可以用来传递客户端的更多信息,以及传递解析消息主题的必要信息。

    User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)Host: example.com
    Accept-Language: en-us
    Accept-Encoding: gzip, deflate

    左边称为头字段名,右边称为头字段值

    空行(CRLF)

    指示头字段区已完成,消息主体开始(如果有消息主体的话)

    消息主体

    比如POST提交表单时,表单数据会打包在消息主体内。
    消息主体是可选的。


    响应信息

    由一个状态行、一个或者多个首部字段行、一个空行消息主体构成

    HTTP/1.1 200 OKDate: Mon, 27 Jul 2009 12:28:53 GMTServer: Apache/2.2.14 (Win32)Last-Modified: Wed, 22 Jul 2009 19:15:56 GMTContent-Length: 88Content-Type: text/htmlConnection: Closed<html>
       <body>
    
       <h1>Hello, World!</h1>
    
       </body></html>

    状态行

    http版本状态码状态描述文字构成。

    状态码

    状态码共5组,分别是 100-199,200-299,300-399,400-499,500-599的范围。

    • 200-299 成功。 指明客户端请求是正确的,并被成功执行。

    • 300-399 重定向。指明客户端请求是正确的,不过当前请求资源的位置在别处,请再次定向你的资源位置,发起新的请求。

    • 400-499 客户端错误。 指明客户端的请求是不正确的,可能是格式无法识别,或者URL太长等等。

    • 500-599 服务器端错误。 指明客户端的请求正确,但是服务器因为自身原因无法完成请求。

    • 100-199 信息提示。 这个系列的状态码只有2个,但是比较费解,会专门单独的做出解释。

    详细:
    ① 客户方错误 
    100  继续 
    101  交换协议 
    ② 成功 
    200  OK 
    201  已创建 
    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版本不支持

    首部字段

    和请求消息类似,包括服务器本身的一些信息指示、以及响应消息本身的元数据

    Date: Mon, 27 Jul 2009 12:28:53 GMTServer: Apache/2.2.14 (Win32)
    Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
    Content-Length: 88Content-Type: text/htmlConnection: Closed

    一个空行(CRLF)

    指示头字段完成

    可选的消息主体

    案例中就是一个hello.html文件的内容


    点评一下

    
    程序:HXC博客v1.0+ 主题:HXC博客前端Funs主题    环境:lamp  后台
    博客平稳运行2年+