• Http Get/Post请求的区别


    1. HTTP请求格式:
       <request line>
       <headers>
       <blank line>
       [<request body>]
       在HTTP请求中,第一行是一个请求行,用来说请求的方式,要访问的资源,HTTP版本。然后是首部小节header,用来说明服务器要使用的附加信息。首部之后是一个空行,然后是请求主体。
    2. GET和POST
       HTTP定义了与服务器交互的不同方法,最基本的方法是POST和GET。HTTP-GET和HTTP-POST是使用HTTP的标准协议动词,用于编码和传送变量名/变量值对参数,如果请求成功则返回应答。URL字符串中如果含有中文字符则用base64加密。

       POST方式,变量名/变量值不作为URL的一部分传送,而是放在实际的HTTP请求消息内部被传送

       浏览器请求时,默认是GET方式
       GET一般用于获取/查询 资源信息,而POST一般用于更新 资源信息
       #根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。
       1.所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。

     * 注意:这里安全的含义仅仅是指是非修改信息。

       2.幂等的意味着对同一URL的多个请求应该返回同样的结果。
     

       #根据HTTP规范,POST表示可能修改变服务器上的资源的请求。

    | get                                                                                            | post                                                                |
    |-----------------------------------------------------+-----------------------------------------------------------   |
    | 从服务器上获取数据                                                                 | 向服务器传送数据                                          |
    | 在客户端,通过URL提交数据                                                  | 数据放在HTML HEADER内提交                   |
    | 服务器端用Request.QueryString获取变量的值                    | 服务器端用Request.Form获取提交的数据 |
    | 提交的数据受到URL长度的限制,如IE限制长度为2083字节 | 没有限制                                                         |
    | 参数显示在地址栏,不安全                                                      | 安全                                                                 |

    示例代码
    #+BEGIN_EXAMPLE
    <!-分别通过get和post方式提交表单-->
    <FORM ACTION="getpost.asp" METHOD="get">
    <INPUT TYPE="text" NAME="Text" VALUE="http://wxf0701.cnblogs.com//>
    <INPUT TYPE="submit" VALUE="Get方式"></INPUT>
    </FORM>
    <BR>
    <FORM ACTION="getpost.asp" METHOD="post">
    <INPUT TYPE="text" NAME="Text" VALUE="http://wxf0701.cnblogs.com/>
    <INPUT TYPE="submit" VALUE="Post方式"></INPUT>
    </FORM>
    <BR>

    <% If Request.QueryString("Text") <> "" Then %>
    通过get方式传递的字符串是: "<B><%= Request.QueryString("Text") %></B>"<BR>
    <% End If %>

    <% If Request.Form("Text") <> "" Then %>
    通过Post方式传递的字符串是: "<B><%= Request.Form("Text") %></B>"<BR>
    <% End If %>

    *HTTP响应实例*

    HTTP响应实例

    HTTP/1.1 200 OK
    Date: Sat, 31 Dec 2005 23:59:59 GMT
    Content-Type: text/html;charset=ISO-8859-1
    Content-Length: 122
    <html>
    <head>
    <title>Wrox Homepage</title>
    </head>
    <body>
    <!-- body goes here -->
    </body>
    </html>
    2.最常用的状态码有:

    ◆200 (OK): 找到了该资源,并且一切正常。
    ◆304 (NOT MODIFIED): 该资源在上次请求之后没有任何修改。这通常用于浏览器的缓存机制。
    ◆401 (UNAUTHORIZED): 客户端无权访问该资源。这通常会使得浏览器要求用户输入用户名和密码,以登录到服务器。
    ◆403 (FORBIDDEN): 客户端未能获得授权。这通常是在401之后输入了不正确的用户名或密码。
    ◆404 (NOT FOUND): 在指定的位置不存在所申请的资源。

  • 相关阅读:
    selenium加载配置参数,让chrome浏览器不出现‘Chrome正在受到自动软件的控制’的提示语,以及后台静默模式运行,不占用桌面的方法
    CentOS7使用firewalld打开关闭防火墙与端口
    LVM基本介绍与常用命令
    CentOS 7 网络配置详解
    rm删除破折号开头的文件或目录
    linux时间的查看与修改
    linux 下shell中if的“e,d,f”是什么意思
    selenium之 定位以及切换frame(iframe)
    Unix/Linux 命令速查表
    History(历史)命令用法 15 例
  • 原文地址:https://www.cnblogs.com/qianye/p/2786419.html
Copyright © 2020-2023  润新知