開發人(ren)員應(ying)該對(dui)IIS理(li)論(lun)層的(de)知識了解的(de)多一些~第一講 什么是Http?
定義
百度百科定義:超文本傳(chuan)輸協(xie)議 (HTTP-Hypertext transfer protocol) 是(shi)分布式,協(xie)作式,超媒(mei)體系(xi)統應用(yong)之間的通信(xin)協(xie)議。是(shi)萬維網(world wide web)交(jiao)換信(xin)息的基礎。它允許將超文本標記語言 (HTML) 文檔從(cong) Web 服務器(qi)傳(chuan)送到 Web 瀏覽器(qi)。HTML 是(shi)一種用(yong)于創建文檔的標記語言,這(zhe)些(xie)文檔包含到相關信(xin)息的鏈(lian)接。您可以單擊一個鏈(lian)接來訪問其(qi)它文檔、圖像或(huo)多媒(mei)體對象(xiang),并獲得關于鏈(lian)接項的附加(jia)信(xin)息。
OSI層的位置,它位于傳輸層
HTTP工作在(zai)(zai)協(xie)議體系中的(de)TCP協(xie)議上。客戶機和服務器(qi)必須(xu)都(dou)支(zhi)持 HTTP,才能在(zai)(zai)上發送和接收 HTML 文檔并進行交互。
以下是OSI七層模型
第七層:應用層 數據 用戶接口,提供用戶程序“接口”。
第六層:表示層 數據 數據的表現形式,特定功能的實現,如數據加密。
第五層:會話層 數據 允許不同機器上的用戶之間建立會話關系,如WINDOWS
第四層:傳輸層 段 實現網絡不同主機上用戶進程之間的數據通信,可靠
與不可靠的傳輸,傳輸層的錯誤檢測,流量控制等。
第三層:網絡層 包 提供邏輯地址(IP)、選路,數據從源端到目的端的
傳輸
第二層:數據鏈路層 幀 將上層數據封裝成幀,用MAC地址訪問媒介,錯誤檢測
與修正。
第一層:物理層 比特流 設備之間比特流的傳輸,物理接口,電氣特性等。
特點
的主要特點可概括如下:
1、支持客戶/服務器模式。
2、 簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由于HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。
3、靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
4、無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。
5、無狀態:HTTP協議是無狀態協議。無狀態是指協議對于事務處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。
請求信息
發出的請求信息包括以下幾個:
●請求行,例如GET /images/logo.gif HTTP/1.1,表示從/images目錄下請求logo.gif這個文件。
●(請求)頭,例如Accept-Language: en
●空行
●可選的消息體 請求行和標題必須以<CR><LF>作為結尾(也就是,回車然后換行)。空行內必須只有<CR><LF>而無其他空格。在HTTP/1.1協議中,所有的請求頭,除post外,都是可選的。
HTTP/1.1協議中共定義了八種方法(有時也叫“動作”)來表明Request-URI指定的資源的不同操作方式:
OPTIONS 返回服務器針對特定資源所支持的HTTP請求方法。也可以利用向Web服務器發送'*'的請求來測試服務器的功能性。
HEAD 向服務器索要與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應消息頭中的元信息。
GET 向特定的資源發出請求。注意:GET方法不應當被用于產生“副作用”的操作中,例如在web app.中。其中一個原因是GET可能會被網絡蜘蛛等隨意訪問。
POST 向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。
PUT 向指定資源位置上傳其最新內容。
DELETE 請求服務器刪除Request-URI所標識的資源。
TRACE 回顯服務器收到的請求,主要用于測試或診斷。
CONNECT HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器。
方法名稱是區分大小寫的。當某個請求所針對的資源不支持對應的請求方法的時候,服務器應當返回狀態碼405(Method Not Allowed);當服務器不認識或者不支持對應的請求方法的時候,應當返回狀態碼501(Not Implemented)。
HTTP服務器至少應該實現GET和HEAD方法,其他方法都是可選的。當然,所有的方法支持的實現都應當符合下述的方法各自的語義定義。此外,除了上述方法,特定的HTTP服務器還能夠擴展自定義的方法。
感謝您的閱讀!