1. 程式人生 > >計算機網絡相關:應用層協議(二):HTTP

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

toc connect html文本 con 也不會 http服務 lang 代碼 保存

前言 復習下計算機網絡的知識並記錄 正文 定義: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個步驟。
二、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

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