1. 程式人生 > >HTTP協議(超文字傳送協議)詳解

HTTP協議(超文字傳送協議)詳解

HTTP協議簡介

  超文字傳送協議 (HTTP) 是一種通訊協議,它允許將超文字標記語言(HTML) 文件從 Web 伺服器傳送到 Web 瀏覽器。HTML 是一種用於建立文件的標記語言,這些文件包含到相關資訊的連結。您可以單擊一個連結來訪問其它文件、影象或多媒體物件,並獲得關於連結項的附加資訊。   HTTP工作在TCP/IP協議體系中的TCP協議上。   客戶機和伺服器必須都支援 HTTP,才能在全球資訊網上傳送和接收 HTML 文件並進行互動。   HTTP是一個屬於應用層的面向物件的協議,由於其簡捷、快速的方式,適用於分散式超媒體資訊系統。它於1990年提出,經過幾年的使用與發展,得到不斷地完善和擴充套件。前一段時間用的是HTTP/1.0,現在WWW中使用的是HTTP/1.1。而且HTTP-NG(Next Generation of HTTP)的建議已經提出。

特點

  HTTP協議的主要特點可概括如下:   1、支援客戶/伺服器模式。 http 協議 簡介

http 協議 簡介

  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伺服器還能夠擴充套件自定義的方法。

安全超文字協議

  安全超文字傳輸協議(Secure Hypertext Transfer Protocol, S-HTTP)是一種結合HTTP而設計的訊息的安全通訊協議。S-HTTP協議為HTTP客戶機和伺服器提供了多種安全機制,這些安全服務選項是適用於Web上各類使用者的。還為客戶機和伺服器提供了對稱能力(及時處理請求和恢復,及兩者的引數選擇)同時維持HTTP的通訊模型和實施特徵。   S-HTTP不需要客戶方的公用金鑰證明,但它支援對稱金鑰的操作模式。這意味著在沒有要求使用者個人建立公用金鑰的情況下,會自發地發生私人交易。它支援端對端安全傳輸,客戶機可能首先啟動安全傳輸(使用報頭的資訊),用來支援加密技術。   在語法上,S-HTTP報文與HTTP相同,由請求行或狀態行組成,後面是信頭和主體。請求報文的格式由請求行、通用資訊頭、請求頭、實體頭、資訊主體組成。相應報文由響應行、通用資訊頭、響應頭、實體頭、資訊主體組成。    目前有兩種方法來建立連線:HTTPSURI方案和HTTP 1.1請求頭(由RFC2817引入)。由於瀏覽器對後者的幾乎沒有任何支援,因此HTTPS URI方案仍是建立安全超文字協議連線的主要手段。安全超文字連線協議使用https://代替http://

相關推薦

HTTP協議超文字傳送協議

HTTP協議簡介   超文字傳送協議 (HTTP) 是一種通訊協議,它允許將超文字標記語言(HTML) 文件從 Web 伺服器傳送到 Web 瀏覽器。HTML 是一種用於建立文件的標記語言,這些文件包含到相關資訊的連結。您可以單擊一個連結來訪問其它文件、影象或多媒體物件,並獲得關於連結項的附加資訊。

HTTP協議超文字傳送協議--超經典

HTTP協議簡介   超文字傳送協議 (HTTP) 是一種通訊協議,它允許將超文字標記語言(HTML) 文件從 Web 伺服器傳送到 Web 瀏覽器。HTML 是一種用於建立文件的標記語言,這些文件包含到相關資訊的連結。您可以單擊一個連結來訪問其它文件、影象或多媒體物件,並獲得關於連結項的附加資訊。

HTTP協議超文字傳送協議

一、概念 HTTP–Hyper Text Transfer Protocol,超文字傳輸協議,是一種建立在TCP上的無狀態連線,整個基本的工作流程是客戶端傳送一個HTTP請求,說明客戶端想要訪問的資源和請求的動作,服務端收到請求之後,服務端開始處理請求,並根據

手動安裝cloudera manager 5.xtar包方式

text res 三種 href none bin -i min devel 官方共給出了3中安裝方式:第一種方法必須要求所有機器都能連網,由於最近各種國外的網站被墻的厲害,我嘗試了幾次各種超時錯誤,巨耽誤時間不說,一旦失敗,重裝非常痛苦。第二種方法下載很多包。第三種方法對

PCA 主成分分析 寫給初學者 結合matlab轉載

整數 變量 行為 保持 sum osc 入參 函數 data 一、簡介 PCA(Principal Components Analysis)即主成分分析,是圖像處理中經常用到的降維方法,大家知道,我們在處理有關數字圖像處理方面的問題時,比如經常用的圖像的查詢

(轉)View Transform視圖變換

camera 1.0 posit 朝向 復制 3d圖 過程 product 變量 原文作者講得太好了,唯有這篇讓我對視圖矩陣了解的清晰了很多。 ----------------------------------------------------------------

BlockingQueue阻塞隊列

明顯 緩存 thread 生產者消費者 演示 mce 生成 log spa 註意:該隨筆內容完全引自http://wsmajunfeng.iteye.com/blog/1629354,寫的很好,非常感謝,復制過來算是個積累,怕以後找不到。 一. 前言   在新增的Concu

Kotlin——最詳細的抽象類abstract、內部類嵌套類

unit 建議 git 功能 pen 情況 master 這也 html 在前面幾個章節中,詳細的介紹了Kotlin類的類別中的數據類、密封類、接口類以及枚舉類。在這個章節中會對Koltin的抽象類和內部類作出一個詳細的講解。如果對上面所提到的類的類別還不是很清晰的,請閱

非旋 treap 結構體數組版無指針,有圖有真相

ati sin closed 基準 隨機函數 例題 偽隨機 作用 拆分 非旋 $treap$ (FHQ treap)的簡單入門 前置技能 建議在掌握普通 treap 以及 左偏堆(也就是可並堆)食用本blog 原理 以隨機數維護平衡,使樹高期望為logn級別

_030_Android_ Android開發之SmsManager簡訊管理器

轉自https://blog.csdn.net/qq_37443229/article/details/80039836,感謝作者的無私分享。 Android開發之SmsManager(簡訊管理器)詳解         SmsManager是

VTPVLAN Trunking Protocol

Notes: VTP 不生成 trunk 介面,但是需要 trunk links 來發送同步資訊 VTP 只同步 switch 中的 vlan database,不同步連線該 vlan 下的PC端介面資訊,需要手動配置 VTP 配置儲存在 vlan.dat 中

字典學習Dictionary Learning, KSVD

注:字典學習也是一種資料降維的方法,這裡我用到SVD的知識,對SVD不太理解的地方,可以看看這篇部落格:《SVD(奇異值分解)小結 》。 1、字典學習思想 字典學習的思想應該源來實際生活中的字典的概念。字典是前輩們學習總結的精華,當我們需要學習新的知識的時候,不必與先輩們一樣去學習先輩們所有學習

ORACLE基礎之oracle鎖oracle lock mode

ORACLE裡鎖有以下幾種模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表鎖,sub share 3:Row-X 行獨佔(RX):用於行的修改,sub exclusive 4:Share 共享鎖(S

Linux Shell 字串操作長度/查詢/替換

在做shell批處理程式時候,經常會涉及到字串相關操作。有很多命令語句,如:awk、sed都可以做字串各種操作。 其實shell內建一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程式等時間,因此速度會非常的快。 一、判斷讀取字串值

Matlab人臉檢測方法Face Parts Detection

  今天同學讓我幫忙製作一個人臉表情識別的樣本庫,其中主要是對人臉進行裁剪,這裡用到了一個相對較新的Matlab人臉檢測方法Face Parts Detection,網上百度了一下發現關於Matlab人臉檢測的程式碼和資源並不多,故此專門撰寫一篇部落格來詳細介紹這個人臉檢測方

MyBatis Generator 自動生成工具

MyBatis Generator中文文件地址: 該中文文件由於儘可能和原文內容一致,所以有些地方如果不熟悉,看中文版的文件的也會有一定的障礙,所以本章根據該中文文件以及實際應用,使用通俗的語言來講解詳細的配置。 本文中所有節點的連結都是對

Android 跨程序雙向通訊Messenger與AIDL

今天這篇文章主要講一下Messenger與AIDL的區別、優缺點以及各自的使用方法。 Messenger與AIDL的異同 一、Messenger與AIDL相同點 1.都與IPC的呼叫有關; 2.Messenger 是一種輕量級的

Android控制元件之SlidingDrawer滑動式抽屜與例項

SlidingDrawer效果想必大家也見到過,它就是1.5模擬器上進入應用程式列表的效果。下面是截圖  一、簡介    SlidingDrawer隱藏屏外的內容,並允許使用者通過handle以顯示隱藏內容。它可以垂直或水平滑動,它有倆個View組成,其

雙硬碟(SSD+HDD)安裝雙系統win10+ubuntu18.04

           電腦配置不是很好,換電腦還沒到那個經濟水平,只能加記憶體條加固態硬碟。於是,目前電腦有三星(SSD 128G)和希捷(HDD 500G)。現在因為學習的需要,選擇了雙系統:Ubuntu18.04+win10。之前在一塊硬碟上安裝過雙系統,於是在安裝完wi

CFICommon Flash Interface

【什麼是CFI】 CFI(Common Flash Interface),是JEDEC(Joint Electron Device Engineering Council,電子器件工程聯合委員會)制定的一個介面, 用來幫助程式讀取Flash的製造商ID和裝置ID,確定Fl