HTTP的簡單理解

前言

看一些公司的招聘信息的時候,經(jīng)常看到熟悉HTTP,今天我就反問了一下我自己什么是HTTP,然后就一臉懵逼了。

任務(wù)

算是HTTP相關(guān)信息的整理吧!盡可能的理解一下HTTP。

HTTP的特性

  • HTTP構(gòu)建于TCP/IP協(xié)議之上(就是工作在應(yīng)用層),默認端口號是80
  • HTTP是無連接無狀態(tài)的

HTTP的請求報文

HTTP 協(xié)議是以 ASCII 碼傳輸,建立在 TCP/IP 協(xié)議之上的應(yīng)用層規(guī)范。規(guī)范把 HTTP 請求分為三個部分:狀態(tài)行、請求頭、消息主體。類似于下面這樣:

<method>  <request-URL>  <version>

    <headers>
    
    <entity-body>

Http定義了與服務(wù)器交互的不同方法

最基本的4種,分別是GETPOSTPUTDELETE
OPTIONS
返回服務(wù)器針對特定資源所支持的HTTP請求方法。也可以利用向Web服務(wù)器發(fā)送'*'的請求來測試服務(wù)器的功能性。

**HEAD **
向服務(wù)器索要與GET請求相一致的響應(yīng),只不過響應(yīng)體將不會被返回。這一方法可以在不必傳輸整個響應(yīng)內(nèi)容的情況下,就可以獲取包含在響應(yīng)消息頭中的元信息。
**GET **
向特定的資源發(fā)出請求。注意:GET方法不應(yīng)當(dāng)被用于產(chǎn)生“副作用”的操作中,例如在Web Application中。其中一個原因是GET可能會被網(wǎng)絡(luò)蜘蛛等隨意訪問。
GET用于信息獲取,而且應(yīng)該是安全的冪等的
所謂安全的意味著該操作用于獲取信息而非修改信息。換句話說,GET 請求一般不應(yīng)產(chǎn)生副作用。就是說,它僅僅是獲取資源信息,就像數(shù)據(jù)庫查詢一樣,不會修改,增加數(shù)據(jù),不會影響資源的狀態(tài)。

冪等的意味著對同一URL的多個請求應(yīng)該返回同樣的結(jié)果。
**POST **
向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導(dǎo)致新的資源的建立和/或已有資源的修改。
**PUT **
向指定資源位置上傳其最新內(nèi)容。
**DELETE **
請求服務(wù)器刪除Request-URI所標(biāo)識的資源。
**TRACE **
回顯服務(wù)器收到的請求,主要用于測試或診斷。
**CONNECT **
HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。

HTTP的響應(yīng)報文

HTTP響應(yīng)與HTTP請求類似,HTTP響應(yīng)也由3個部分構(gòu)成,分別是狀態(tài)行、響應(yīng)頭(Response Header)、響應(yīng)正文。
狀態(tài)行由協(xié)議版本、數(shù)字形式的狀態(tài)代碼、及相應(yīng)的狀態(tài)描述,各元素之間以空格分割。
常見的狀態(tài)碼有如下幾種:

  • 200 OK 客戶端請求成功
  • 301 Moved Permanently 請求永久重定向
  • 302 Moved Temporarily 請求臨時重定向
  • 304 Not Modified 文件未修改,可以直接使用緩存的文檔
  • 400 Bad Request 由于客戶端請求有語法錯誤,不能被服務(wù)器所理解。
  • 401 Unauthorized請求未經(jīng)授權(quán)。這個狀態(tài)代碼必須和WWW-Anthenticate報頭域一起使用
  • 500 Internal Server Error 服務(wù)器發(fā)生不可預(yù)期的錯誤,導(dǎo)致無法完成客戶端的請求。
  • 503 Service Unavailable服務(wù)器當(dāng)前不夠處理客戶端的請求,在一段時間后,服務(wù)器恢復(fù)正常。

下面是一個HTTP響應(yīng)的例子:

HTTP/1.1 200 OK

Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:23:42 GMT
Content-Length:112

<html>...

注意

此文章會繼續(xù)追加的。。。。。。。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,908評論 18 139
  • 一、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,434評論 6 152
  • HTTP概述 超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol) 是互聯(lián)網(wǎng)上應(yīng)用最...
    曹淵說創(chuàng)業(yè)閱讀 3,867評論 2 61
  • Http協(xié)議詳解 標(biāo)簽(空格分隔): Linux 聲明:本片文章非原創(chuàng),內(nèi)容來源于博客園作者MIN飛翔的HTTP協(xié)...
    Sivin閱讀 5,252評論 3 82
  • API定義規(guī)范 本規(guī)范設(shè)計基于如下使用場景: 請求頻率不是非常高:如果產(chǎn)品的使用周期內(nèi)請求頻率非常高,建議使用雙通...
    有涯逐無涯閱讀 2,592評論 0 6