• HTTP-GET



    建立连接方面:

    HTTP/1.0 每次请求都需要建立新的TCP连接,连接不能复用。HTTP/1.1 新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。优点是减少重复进行TCP三次握手的开销,提高效率。

    注意:在同一个TCP连接中,新的请求需要等上次请求收到响应后,才能发送。

     

    Host头域:

    HTTP1.1在Request消息头里头多了一个Host域, HTTP1.0则没有这个域。

     

    日期时间戳:

     

     

    (接收方向)

    无论是HTTP1.0还是HTTP1.1,都要能解析下面三种date/time stamp:

    Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
         Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
         Sun Nov 6 08:49:37 1994       ; ANSI C's asctime() format

    (发送方向)

    HTTP1.0要求不能生成第三种asctime格式的date/time stamp;

    HTTP1.1则要求只生成RFC 1123(第一种)格式的date/time stamp。

     

    状态响应吗:

    状态响应码100 (Continue) 状态代码的使用,允许客户端在发request消息body之前先用request header试探一下server,看server要不要接收request body,再决定要不要发request body。

    客户端在Request头部中包含

    Expect: 100-continue

    Server看到之后呢如果回100 (Continue) 这个状态代码,客户端就继续发request body。这个是HTTP1.1才有的。

    另外在HTTP/1.1中还增加了101、203、205等等性状态响应码

     

    请求方式:

    HTTP1.1增加了OPTIONS, PUT, DELETE, TRACE, CONNECT这些Request方法.

           Method  = "OPTIONS"                ; Section 9.2

                          | "GET"                    ; Section 9.3

                          | "HEAD"                   ; Section 9.4

                          | "POST"                   ; Section 9.5

                          | "PUT"                    ; Section 9.6

                          | "DELETE"                 ; Section 9.7

                          | "TRACE"                  ; Section 9.8

                          | "CONNECT"                ; Section 9.9

                          | extension-method

           extension-method = token

     

    请求消息格式:

    一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。

    HTTP的请求方法包括如下几种:

          GET

          POST

          HEAD

          PUT

          DELETE

          OPTIONS

          TRACE

          CONNECT

    GET:当客户端要从服务器中读取文档时,使用GET方法。GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号(“?”)代表URL的结尾与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind。

     

    GET /hello.htm HTTP/1.1

    Accept: */*
         Accept-Language: zh-cn
            Accept-Encoding: gzip, deflate
         If-Modified-Since: Wed, 17 Oct 2007 02:15:55 GMT
         If-None-Match: W/"158-1192587355000"
            User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
            Host: 192.168.2.162:8080

           Connection: Keep-Alive

     

    Get明文传输,信息附加在url上面。

    Get传输有大小限制,应该是3k。

    Get多用于获取数据,根据get变量的不同调用不同的数据。

    Get是向服务器发索取数据的一种请求。

    Get是获取信息,而不是修改信息,类似数据库查询功能一样,数据不会被修改。

    Get请求的参数会跟在url后进行传递,请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密。

    Get传输的数据有大小限制,因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了,不同的浏览器对URL的长度的限制是不同的。

    GET请求的数据会被浏览器缓存起来,用户名和密码将明文出现在URL上,其他人可以查到历史浏览记录,数据不太安全。


      版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处  

      作者:杭州卿萃科技ALIFPGA  

      原文地址:杭州卿萃科技FPGA极客空间 微信公众号


        

      扫描二维码关注杭州卿萃科技FPGA极客空间



     

  • 相关阅读:
    eclipse配置Tomcat The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    解决掉你心中 js function与Function的关系的疑问
    英语 one day
    合并两个有序链表
    有效的括号
    探讨前后端分离
    菜鸡发现腾讯视频bug
    最长公共前缀
    字符串转整数
    回文数
  • 原文地址:https://www.cnblogs.com/alifpga/p/7791539.html
Copyright © 2020-2023  润新知