zoukankan      html  css  js  c++  java
  • HTTP协议学习(一)

    一。HTTP报文的组成

      请求报文由 请求行、请求头、请求空行、请求实体四部分组成。其中,请求行和请求头共同组成 请求报文头部

        请求行:一行,依次由 请求方法、URI(或者应该说是域名?)、HTTP协议版本 三部分组成

        请求头:由 通用首部字段、请求首部字段、实体首部字段 三部分组成

        空行

        请求实体(请求报文实体)

      响应报文由 响应行、响应头、响应空行、响应实体四部分组成。其中,响应行和响应头共同组成响应报文头部

        响应行:一行,依次由 HTTP协议版本、状态码、状态码简介 三部分组成

        响应头:由 通用首部字段、响应首部字段、实体首部字段 三部分组成

        空行

        响应实体(响应报文实体)

    二。请求方法

      HTTP1.1总共有8种请求方法

      都是针对请求URI做出的动作

      1.GET  请求资源

      2.POST  提交数据,传输实体主体

      3.PUT  传输文件

      4.HEAD  获取报文首部

      5.DELETE  删除文件

      6.OPTION  询问支持的方法

      7.TRACE  追踪路径,Max-Forwards首部字段中填入数值,每经过一个服务器则减1,数值变为0时停止传输,最后收到请求的服务器返回200 OK

      8.CONNECT  与代理服务器间建立隧道(使用SSL(Secure Socket Layer,安全套接层)和TLS(Transport Layer Secure,传输层安全)加密的通信通道)

      GET 和 POST的比较:

      (1)是否可保存为书签:GET能被保存为书签;POST不能

      (2)是否可以缓存:GET能被缓存;POST不能

      (3)参数是否能保存为浏览器历史:GET中的参数能保存在浏览器历史里;POST的参数不能

      (4)数据类型限制:GET只允许ASCII码字符;POST无数据类型限制,可以为二进制数据,因为POST的数据作为一个整体放在请求报文实体里

      (5)数据是否可见:GET的数据可见,因为用 ? 和 & 拼接在URL中;POST的数据不可见

      (6)数据是否安全:GET中的数据不安全;POST比GET更安全

      (7)数据的长度限制:GET有长度限制,URL最长2048个字符;POST数据内容无长度限制

      (8)后退/刷新是否有害:GET无害;POST会重复提交数据

    三。状态码

      总共有5种不同类别的状态码。总结如下

    状态码类别含义
    1XX Informational(信息性状态码) 接收的请求正在处理
    2XX Success(成功状态码) 请求正常处理完毕
    3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
    4XX Client Error(客户端错误状态码) 服务器无法处理请求
    5XX Server Error(服务器错误状态码) 服务器处理请求出错

      常见的状态码有:

      100:Continue  一切正常 ,客户端可以继续发送请求

      200:OK

      204:Not Content  请求正常处理,但返回的响应报文中不含实体的主体部分(无资源返回)

      206:Partial Content  表示客户端进行了范围请求,服务器成功执行。响应报文中包含由 Content-Range 指定范围的实体内容

      301:Moved Permanently  永久重定向

      302:Found  临时性重定向。表示请求的资源已分配新的URI,希望用户本次使用新URI访问

      303:See Other  和 302 有着相同的功能,但是 303 明确要求客户端应该采用 GET 方法获取资源

      304:Not Modified  请求报文首部包含条件(如:If-Match),不满足条件是返回 304

      307:Temporary Redirect  临时性重定向。POST方法不会变为GET方法

      注:虽然 HTTP 协议规定 301、302 状态下重定向时不允许把 POST 方法改成 GET 方法,但是大多数浏览器都会在 301、302 和 303 状态下的重定向把 POST 方法改成 GET 方法。

      400:Bad Request  错误请求(请求报文中存在语法错误)

      401:Unauthorized  请求需要HTTP认证信息

      403:Forbidden  该资源拒绝访问

      404:Not Found  无法找到请求的资源

      500:Internal Server Error  服务器发生错误

      503:Service Unavailable  服务器繁忙(超负载或正在停机维护)

      

  • 相关阅读:
    OA开发中下载模板文件的方法之xml篇
    使用不同的doctype造成不同的显示效果
    反射发送实战(-)InvokeMember [转载]
    浅谈DataGridTableStyle心得
    动态加载控件疑惑。。。。
    不同语言中的关键字的比较
    利用mask在PhotoShop完成渐变的图片。
    碰撞代码
    接近感应传感器
    SQLite在多线程环境下的应用
  • 原文地址:https://www.cnblogs.com/xiang9286/p/10598047.html
Copyright © 2011-2022 走看看