什么是HTTP
HTTP協(xié)議工作于客戶端-服務端架構(gòu)上的。
瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB服務器發(fā)送所有請求。
Web服務器有:Apache服務器,IIS服務器(Internet Information Services)等。
Web服務器根據(jù)接收到的請求后,向客戶端發(fā)送響應信息。
HTTP默認端口號為80,但是你也可以改為8080或者其他端口。
HTTP三點注意事項:
-
HTTP是無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節(jié)省傳輸時間。 -
HTTP是媒體獨立的:這意味著,只要客戶端和服務器知道如何處理的數(shù)據(jù)內(nèi)容,任何類型的數(shù)據(jù)都可以通過HTTP發(fā)送??蛻舳艘约胺掌髦付ㄊ褂眠m合的MIME-type內(nèi)容類型。 -
HTTP是無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對于事務處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務器不需要先前信息時它的應答就較快。
以下圖表展示了HTTP協(xié)議通信流程:

小結(jié)
HTTP是基于客戶端/服務端(C/S)的架構(gòu)模型,通過一個可靠的鏈接來交換信息,是一個無狀態(tài)的請求/響應協(xié)議。
HTTP"客戶端",通過連接到服務器達到向服務器發(fā)送一個或多個HTTP的請求的目的。
HTTP"服務器",通過接收客戶端的請求并向客戶端發(fā)送HTTP響應數(shù)據(jù)。
客戶端請求消息
客戶端發(fā)送一個HTTP請求到服務器的請求消息包括以下格式:請求行(request line)、請求頭部(header)、空行和請求數(shù)據(jù)四個部分組成,下圖給出了請求報文的一般格式。
下面是一個實際的請求報文:

①是請求方法,GET和POST是最常見的HTTP方法.
②為請求對應的URL地址,它和報文頭的Host屬性組成完整的請求URL.
③是協(xié)議名稱及版本號。
④是HTTP的報文頭,報文頭包含若干個屬性,格式為“屬性名:屬性值”,服務端據(jù)此獲取客戶端的信息。
⑤是報文體,它將一個頁面表單中的組件值通過param1=value1¶m2=value2的鍵值對形式編碼成一個格式化串,它承載多個請求參數(shù)的數(shù)據(jù)。

服務器響應消息
HTTP響應也由四個部分組成,分別是:狀態(tài)行、消息報頭、空行和響應正文。

HTTP請求方法
GET
POST
比較GET方法和POST方法本質(zhì)上的區(qū)別:
1、GET方法用于信息獲取,它是安全的(安全:指非修改信息,如數(shù)據(jù)庫方面的信息),而POST方法是用于修改服務器上資源的請求;
2、GET請求的數(shù)據(jù)會附在URL之后,而POST方法提交的數(shù)據(jù)則放置在HTTP報文實體的主體里,所以POST方法的安全性比GET方法要高;
3、GET方法傳輸?shù)臄?shù)據(jù)量一般限制在2KB,其原因在于:GET是通過URL提交數(shù)據(jù),而URL本身對于數(shù)據(jù)沒有限制,但是不同的瀏覽器對于URL是有限制的,比如IE瀏覽器對于URL的限制為2KB,而Chrome,F(xiàn)ireFox瀏覽器理論上對于URL是沒有限制的,它真正的限制取決于操作系統(tǒng)本身;POST方法對于數(shù)據(jù)大小是無限制的,真正影響到數(shù)據(jù)大小的是服務器處理程序的能力
注:所寫文章均為作者自己的學習筆記,不做任何其他參考價