計算機網絡相關:應用層協議(二):HTTP

前言
複習下計算機網絡的知識並記錄
正文
定義:HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用於從WWW服務器傳輸超文本到本地瀏覽器的傳送協議。
一.HTTP請求過程(非持續鏈接)
訪問URL的過程:(以http://www.someSchool.edu/department/home.index爲例)
1.HTTP客戶進程在端口號80發起一個到服務器的TCP連接(三次握手),在客戶和服務器上分別有套接字與該鏈接相關聯。
2.HTTP經它的套接字向該服務器發送一個HTTP請求報文,請求報文包含了路徑名/department/home.index。
3.HTTP服務器進程經它的套接字接受該請求報文,從其存儲器中檢索出對象 www.someSchool.edu/department/home.index,在一個HTTP響應報文中封裝對象,並經過套接字向服務器發送響應報文。
4.服務器進程通知TCP斷開該TCP鏈接(但直到TCP確認客戶已經完整地收到響應報文爲止,它纔會實際中斷鏈接,即四次分手過程)
5.HTTP客戶端接收響應報文,TCP鏈接關閉。若是有其餘文件的引用,重複前4個步驟。
 
2、HTTP報文格式
1.HTTP請求報文
GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
Connection:close
User-agent:Mozilla/5.0
Accept-Language:fr
1)第一行是請求行,包含了請求的方法、URL字段、HTTP版本字段
2)以後的叫首部行。Host爲主機域名,Connection爲鏈接方式(close短鏈接/Keep-Alive長鏈接),User-Agent爲用戶代理,即向服務器發送請求的瀏覽器的類型,accpet——language即語言。
3)若是是Post,首部行以後接一個空行,而後是正文內容(表單之類的)。
4)Get一般用來向服務器請求一個對象,HEAD相似於GET,只不過服務器收到HEAD請求時只用一個HTTP報文響應,不會返回對象,經常使用來跟蹤調試。PUT與Web發行工具聯合使用,容許用戶上傳對象到指定的Web服務器上的指定路徑。Delete容許用戶刪除Web服務器上的對象。
 
2.HTTP響應報文
HTTP/1.1 200 OK
Connection:close
Date:Tue,09 Aug 2011 15:44:04 GMT
Server: Apache/2.2.3 (Centos)
Last-Modified:Tue,09 Aug 2011 15:11:03 GMT
Content-Length:6821
Content-type:text/html 
 
(data ...data ...data)
它分爲三部分:初始狀態行、6個首部行、實體行。
初始狀態行:包含協議版本、狀態碼和對應的狀態信息。。
首部行:Connection鏈接方式,Date表示服務器產生併發送該響應報文的日期時間,Server服務器類型,Last-Modified表示該對象建立或者最後修改的日期時間,通常用於緩存更新的時間比較;Content-Length指示被髮送對象的字節數;Content-type表示對象類型格式。
實體內容:上述的響應報文的實體爲HTML文本
返回碼:
  • 200 OK:請求成功。
  • 301 Move Permanently: 請求的對象已經被永久轉移,新的URL定義在響應報文的Location首部行中。
  • 400 Bad Request:通用差錯代碼,指示該請求服務器沒法理解。
  • 404 Not Found:請求的資源不存在。
  • 5xx :服務器的問題。
3.Cookie
用於標識一個用戶,並保存一些用戶信息。
Cookie技術有4個組件:
  • 在HTTP響應報文中的一個cookie首部行:Set-cookie(第一次創建鏈接時若是無cookie或者cookie過時,服務器會返回一個新的給客戶端)。
  • 在HTTP請求報文中的一個cookie首部行:cookie。
  • 在用戶端系統中保留的一個cookie,並由用戶瀏覽器管理。
  • 位於Web站點的後端數據庫的cookie
4.補充
URI全名爲Uniform Resource Indentifier(統一資源標識),用來惟一的標識一個資源,是一個通用的概念,URI由兩個主要的子集URL和URN組成
URL全名爲Uniform Resource Locator(統一資源定位),經過描述資源的位置來標識資源
URN全名爲Uniform Resource Name(統一資源命名),經過資源的名字來標識資源,與其所處的位置無關,這樣即便資源的位置發生變更,其URN也不會變化
 
 參考資料
《計算機網絡 自頂向下方法 第6版》  機械工業出版社    【美】  James F.Kurose & Keith W.Ross
相關文章
相關標籤/搜索