HTTP協(xié)議摘要
- HTTP協(xié)議工作在第幾層彬犯,它下層使用了哪些協(xié)議向楼?
HTTP是應(yīng)用層協(xié)議,工作在第5層(TCP/IP協(xié)議族)谐区。它的傳輸層使用的是TCP協(xié)議湖蜕,網(wǎng)絡(luò)層使用IP協(xié)議。
- HTTP協(xié)議是無連接的宋列,其具體含義是什么昭抒?
HTTP協(xié)議無連接,不代表真的不建立TCP連接炼杖。它是基于TCP的灭返,而TCP是面向連接的傳輸層協(xié)議,所以HTTP一定得建立TCP連接坤邪,只不過HTTP限制了每次連接只處理客戶端的一個請求熙含,響應(yīng)結(jié)束即斷開連接,目的是節(jié)省傳輸時間艇纺。
- HTTP是無狀態(tài)的怎静。
HTTP對事務(wù)的處理沒有記憶能力邮弹。如果后續(xù)操作需要前面的信息,那么前面的信息也必須重傳蚓聘。
HTTP消息結(jié)構(gòu)
分為客戶端請求消息的結(jié)構(gòu)和服務(wù)器響應(yīng)消息的結(jié)構(gòu):
請求消息
- 請求行: 請求方法(GET/POST/PUT/DELETE/....) URL 協(xié)議版本
- 請求頭部: 由多行組成腌乡,每行: 頭部字段名:值。
- 請求數(shù)據(jù): 具體的請求數(shù)據(jù)或粮。
請求方法:
- GET:請求URL標識的資源
- POST:請求URL標識的資源导饲,同時附加額外的數(shù)據(jù)給服務(wù)器,通常用來提交表單氯材。
- HEAD:和GET類似渣锦,知識響應(yīng)中不必真的回復(fù)具體的內(nèi)容,用于獲取報頭氢哮。
- PUT: 請求服務(wù)器存儲一個資源袋毙,并用URL標識該資源。
- DELETE:請求服務(wù)器刪除URL標識的資源冗尤。
- 其它:TRACE/OPTIONS 不是很常用听盖,用時自查。
請求頭部:
- Accpt-Charset: 客戶端指定自己能接收什么字符集裂七。
- Accept-Encoding:接受什么編碼皆看。
- Authorization:如果服務(wù)器返回401(未授權(quán)時),可以添加該字段認證自己有權(quán)限
- ....
響應(yīng)消息
- 狀態(tài)行: 號碼(200/404/503/.......)
- 消息報頭:后面詳解
- 響應(yīng)正文:通常是html文件背零。
響應(yīng)頭部
- Allow:服務(wù)器支持哪些請求方法:GET?POST?..
- Content-Encoding: 文檔的編碼方法腰吟。
- Content-Length:內(nèi)容長度,只有當瀏覽器使用持久HTTP連接時才需要這個數(shù)據(jù)徙瓶。
- Content-Type: 響應(yīng)正文術(shù)語什么MIME類型毛雇,text/html? 等等。侦镇。灵疮。
- Date: 當前GMT時間。
- Refresh:瀏覽器應(yīng)該在多少時間后刷新文檔壳繁,以秒計震捣。編程時,函數(shù)setHeader("Refresh","3;URL=http://another_page")可以在3秒鐘后讓瀏覽器刷新到URL指定的頁面闹炉,但是這種功能是通過設(shè)置html的 META DATA來實現(xiàn)的伍派,是html編寫者寫的。而對于Servlet, 才可以直接設(shè)置HTTP Refresh頭部剩胁。
- Server:Server的名字诉植。
- Set-Cookie:設(shè)置和頁面關(guān)聯(lián)的Cookie,Cookie的含義和作用后面詳說昵观。
常用狀態(tài)嗎的含義
- 200:正常
- 301:資源被轉(zhuǎn)移
- 403:服務(wù)器拒絕你的訪問晾腔。
- 404:資源不存在
- 500:服務(wù)器內(nèi)部錯誤
- 503:服務(wù)器暫時出錯了舌稀,一段時間后也許可以使用。