簡介
超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)是互聯(lián)網上應用最為廣泛的一種網絡協(xié)議椎组。所有的WWW文件都必須遵守這個標準。設計HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法竿痰。1960年美國人Ted Nelson構思了一種通過計算機處理文本信息的方法褪测,并稱之為超文本(hypertext),這成為了HTTP超文本傳輸協(xié)議標準架構的發(fā)展根基。Ted Nelson組織協(xié)調萬維網協(xié)會(World Wide Web Consortium)和互聯(lián)網工程工作小組(Internet Engineering Task Force )共同合作研究阁将,最終發(fā)布了一系列的RFC膏秫,其中著名的RFC 2616定義了HTTP 1.1。
我們把Http協(xié)議中通信的兩方稱作Client和Server關系如圖(1):
URL詳解
scheme:指定底層使用的協(xié)議(例如:http冀痕,https荔睹,ftp)
host:HTTP服務器的IP地址或者域名
port#:HTTP服務器的默認端口是80狸演,這種情況下端口號可以省略言蛇。如果使用了別的端口僻他,必須指明
path:訪問資源的路徑
url-params:url參數(shù)
query-string:發(fā)送給http服務器的數(shù)據(jù)(?后面)
anchor:錨腊尚,用于頁面定位
http協(xié)議是無狀態(tài)協(xié)議
原理:同一個客戶端的這次請求和上次請求是沒有對應關系吨拗,對http服務器來說,它并不知道這兩個請求來自一個客戶端婿斥。無狀態(tài)是指協(xié)議對于事務沒有記憶能力劝篷,服務器不知道客戶端是什么狀態(tài)。從另一個方面講民宿,打開一個服務器上的網頁和你之前打開這個服務器上的網頁之間沒有任何聯(lián)系娇妓。
解決方案:Cookie機制來維護
Http消息結構
Request消息的結構:三部分
請求行:http請求種類,請求資源路徑活鹰,http協(xié)議版本
http header:http頭部信息(后面文章后更新這塊內容)
body:發(fā)送給服務器query-string的信息
當使用的是"GET"方法的時候哈恰,body是為空的
Response消息的結構
請求行:協(xié)議版本,狀態(tài)碼志群,message
request header:request頭信息
body:返回的請求資源主體
get和post的區(qū)別
1.GET提交的數(shù)據(jù)會放在URL之后着绷,以?分割URL和傳輸數(shù)據(jù)锌云,參數(shù)見以&相連荠医;POST方法是把提交的數(shù)據(jù)放在HTTP包的Body中
2.GET提交的數(shù)據(jù)大小有限制;POST方法提交的數(shù)據(jù)沒有限制
3.GET方式需要使用Request.QueryString來獲取變量的值桑涎;POST通過Request.From來獲取變量的值
4.GET方式提交數(shù)據(jù)彬向,會帶來安全問題