HTTP協(xié)議是一個超文本傳輸協(xié)議,它是基于TCP/IP進行通信協(xié)議來進行數(shù)據(jù)傳遞
特點:
1. 簡單快速,客戶端向服務器端發(fā)起請求時,只需傳輸請求方法和路徑。請求方法常用的有POST、GET等。每個方法規(guī)定了客戶與服務器聯(lián)系的類型不同。由于HTTP協(xié)議簡單,所以通信速度快
2. 靈活:可以傳輸任意類型的數(shù)據(jù)對象。傳輸類型由Content-Type加以標記
3. 無連接:限制每次連接只處理一個請求。服務器處理完客戶端的請求,在收到客戶端的應答之后便會斷開連接
4. 無狀態(tài):HTTP是無狀態(tài)協(xié)議。無狀態(tài)指的是協(xié)議對于事務處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則必須重傳,這樣可能導致每次連接傳送的數(shù)據(jù)量增大,另一個方面,在服務器不需要其他信息的時候它的應答就會很迅速
5. 支持B/S以及C/S模式
URL是HTTP使用的統(tǒng)一資源標識符,來傳輸數(shù)據(jù)以及建立連接。URL是一種特殊類型的URI,全稱為UniformResourceLocator,中文名為統(tǒng)一資源定位符,URL包含以下幾個部分:
如:https://baike.baidu.com:8080/item/url/110640?fr=aladdin
1. 協(xié)議/模式部分:它告訴瀏覽器如何處理將要打開的文件。最常用的模式是超文本傳輸協(xié)議(Hypertext Transfer Protocol,縮寫為HTTP),這個協(xié)議可以用來訪問網(wǎng)絡。其他協(xié)議如下:
http——超文本傳輸協(xié)議資源
https——用安全套接字層傳送的超文本傳輸協(xié)議
ftp——文件傳輸協(xié)議
mailto——電子郵件地址
ldap——輕型目錄訪問協(xié)議搜索
file——當?shù)?a href='http://www.companysz.com/dnzs/' target='_blank'>電腦或網(wǎng)上分享的文件
news——Usenet新聞組
gopher——Gopher協(xié)議
telnet——Telnet協(xié)議
在上面的例子中協(xié)議部分就是https
2. 域名部分:上面的域名即為:baike.baidu.com
3. 端口部分:跟在域名后面的即為端口號,端口跟域名之間使用:分割,端口不是一個URL必須的部分,如果省略端口號,就會采用默認端口
4. 文件名部分:/item/url/110640
5. 參數(shù)部分:fr=aladdin,即問號后面
HTTP的請求消息Request主要有以下幾個部分組成:
* 請求行 : 請求方法 | URL | 協(xié)議版本
* 請求頭部 :請求頭包含許多有關的客戶端環(huán)境和請求正文的有用信息
* 請求正文 : 請求頭和請求正文之間是一個空行,這個行非常重要,它表示請求頭已經(jīng)結(jié)束,接下來的是請求正文。請求正文中可以包含客戶提交的查詢字符串信息
HTTP響應消息Response由以下幾個部分組成:
* 狀態(tài)行 : 協(xié)議版本 | 狀態(tài)碼 | 狀態(tài)消息
* 響應報頭 : Date 、Content-Type等等
* 響應正文 : 服務器端返回數(shù)據(jù)
狀態(tài)碼由三位數(shù)字組成,第一個數(shù)字定義了響應的類別
* 1xx:指示消息,表示請求已接收,繼續(xù)處理
* 2xx:成功,表示請求已被成功接收
* 3xx:重定向,表示要晚上請求必須更進一步的操作
* 4xx:客戶端錯誤,表示請求有語法錯誤或者無法實現(xiàn)
* 5xx:服務端錯誤,表示服務器端未能實現(xiàn)合法的請求
常見狀態(tài)碼:
200 - ok - 請求成功400 - Bad Request - 客戶端請求有語法錯誤,不能被服務器理解401 - Unauthorized - 請求未經(jīng)授權(quán)403 - Forbidden - 服務器收到請求,但是拒絕提供服務404 - Not Found - 請求資源不存在500 - Internal Server Error - 內(nèi)部服務器錯誤503 - Server Unavaliable - 服務器不可用請求方法
HTTP 1.0 定義了三種請求方法 :GET、POST、HEADHTTP 1.1 新增了五種請求方法 :OPTIONS、PUT、DELETE、TRACE、CONNECT
GET - 請求指定的頁面信息,并返回實體主體HEAD - 類似于GET請求,但是返回的只有報頭POST - 向指定的資源提交數(shù)據(jù)進行處理請求PUT - 從客戶端向服務器傳送的數(shù)據(jù)取代指定文件的內(nèi)容DELETE - 請求服務器刪除指定的頁面CONNECT - HTTP/1.1協(xié)議中預留給能夠?qū)⑦B接改為管道方式的代理服務器。OPTIONS - 允許客戶端查看服務器性能TRACE - 回顯服務器收到的請求,主要用于測試或診斷。GET與POST的區(qū)別
數(shù)據(jù)提交:GET的請求數(shù)據(jù)會放在URL之后,使用 號進行連接,但POST的請求數(shù)據(jù)會放在HTTP包內(nèi)
傳輸數(shù)據(jù)大小:由于一般的瀏覽器對于URL的長度是有限制的,所以使用GET請求數(shù)據(jù)會收到大小的限制,但是POST是將數(shù)據(jù)放在包內(nèi),即沒有大小限制
安全性:GET提交數(shù)據(jù)在URL中,可以被緩存從而回去數(shù)據(jù)
注:
1. HTTP協(xié)議沒有對傳輸?shù)臄?shù)據(jù)大小進行限制,HTTP協(xié)議規(guī)范也沒有對URL長度進行限制。
2. HTTP的 GET,POST,SOAP協(xié)議都是在http上運行的
(1)GET:請求參數(shù)是作為一個key/html' target='_blank'>value對的序列(查詢字符串)附加到URL上的
查詢字符串的長度受到web瀏覽器和web服務器的限制(如IE最多支持2048個字符),不適合傳輸大型數(shù)據(jù)集同時,它很不安全
(2)POST:請求參數(shù)是在http標題的一個不同部分(名為entity body)傳輸?shù)模@一部分用來傳輸表單信息,因此必須將Content-type設置為:application/x-www-form- urlencoded。post設計用來支持web窗體上的用戶字段,其參數(shù)也是作為key/value對傳輸。
但是:它不支持復雜數(shù)據(jù)類型,因為post沒有定義傳輸數(shù)據(jù)結(jié)構(gòu)的語義和規(guī)則。
(3)SOAP:是http post的一個專用版本,遵循一種特殊的xml消息格式
Content-type設置為: text/xml 任何數(shù)據(jù)都可以xml化。
HTTP協(xié)議定義了很多與服務器交互的方法,最基本的有4種,分別是GET,POST,PUT,DELETE. 一個URL地址用于描述一個網(wǎng)絡上的資源,而HTTP中的GET, POST, PUT, DELETE就對應著對這個資源的查,改,增,刪4個操作。 我們最常見的就是GET和POST了。GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息.
以上就是什么是HTTP協(xié)議的詳細內(nèi)容,html教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。
新聞熱點
疑難解答