一、HTTP请求GET与POST
1.GET:GET方法用于向服务器发送简单的资源请求,使用GET方法可以传送参数,但是传送的参数会出现在地址栏(附加在地址后用?与地址隔开,例如搜索引擎中搜索栏 的内容会附加在结果页面的地址后),因此没有保密性(如不适合传送密码等内容),发送请求后得到的页面可以被浏览器的历史记录或书签保存。由于地址长度的限制, GET方法不能传输过长的参数。GET是默认的HTTP传输方式,如果不指定HTTP方法则默认用GET。GET方法一般不会对服务器端的内容进行改动。
2.POST:POST方法不仅可以向服务器发送资源请求,还可以发送大量数据(如表单等),传输的数据不会出现在地址中,而是在POST请求的Body中。POST方法得到的页面 无法被浏览器的书签保存(如被要求重新提交表单等)。POST方法一般会对服务器端的内容进行改动。
GET请求的内容:
GET /select/selectBeerTaste.jsp?color=dark&taste=malty HTTP/1.1
Host: www.wickedlysmart.com
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.4) Gecko/
20030624 Netscape/7.1
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/
plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-ali
第一行为request line:GET为HTTP GET /select/selectBeerTaste.jsp指向请求的服务器内容,?后color=dark&taste=malty为传递的参数,共两个参数一个为color另一个为taste,
两个参数用&隔开。HTTP/1.1为传输协议。其余内容为header。GET中没有body。
POST请求的内容:
POST /advisor/selectBeerTaste.do HTTP/1.1 Host: www.wickedlysmart.com User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.4) Gecko/ 20030624 Netscape/7.1 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/ plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive color=dark&taste=malty
第一行同样为request line,除没有参数外其他与GET方法相同。中间为header。最后为body,参数放在了body中。
二、HTTP响应:
在收到HTTP请求后服务器向用户返回HTTP响应。
HTTP/1.1 200 OK Set-Cookie: JSESSIONID=0AAB6C8DE415E2E5F307CF334BFCA0C1; Path=/testEL Content-Type: text/html Content-Length: 397 Date: Wed, 19 Nov 2003 03:25:40 GMT Server: Apache-Coyote/1.1 Connection: close <html> ... </html>
connection行及其上为header,其下为body,header中存放协议信息以及状态等,body中存放返回的内容,此例中返回内容为一个html页面。
三、URL
http://www.wickedlysmart.com:80/beeradvice/select/beer1.html
http协议,www.wickedlysmart.com服务器地址,80端口,beeradvice/select/资源所在的路径,beerl.html为具体资源。