码迷,mamicode.com
首页 > Web开发 > 详细

HTTP-GET

时间:2017-11-06 11:19:20      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:ons   mat   历史   杭州   缓存   flat   文字   mozilla   continue   

技术分享


 

建立连接方面:

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极客空间

 


 

 


 

HTTP-GET

标签:ons   mat   历史   杭州   缓存   flat   文字   mozilla   continue   

原文地址:http://www.cnblogs.com/alifpga/p/7791539.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!