http get 消息的作用是什么?_http基础知识
什么是http?
HTTP 全稱是 HyperText Transfer Protocol,即:超文本傳輸協(xié)議,從 1990 年開(kāi)始就在 WWW 上廣泛應(yīng)用,是現(xiàn)今在 WWW 上應(yīng)用最多的協(xié)議,HTTP 是應(yīng)用層協(xié)議,當(dāng)你上網(wǎng)瀏覽網(wǎng)頁(yè)的時(shí)候,瀏覽器和 web 服務(wù)器之間就會(huì)通過(guò) HTTP 在 Internet 上進(jìn)行數(shù)據(jù)的發(fā)送和接收。HTTP 是一個(gè)基于請(qǐng)求/響應(yīng)模式的、無(wú)狀態(tài)的協(xié)議。
http請(qǐng)求方法:
根據(jù) HTTP 標(biāo)準(zhǔn),HTTP 請(qǐng)求可以使用多種請(qǐng)求方法。
HTTP1.0 定義了三種請(qǐng)求方法: GET, POST 和 HEAD方法。
HTTP1.1 新增了六種請(qǐng)求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
- GET:向指定的資源發(fā)出“顯示”請(qǐng)求,使用 GET 方法應(yīng)該只用在讀取數(shù)據(jù)上,而不應(yīng)該用于產(chǎn)生“副作用”的操作中。
 - HEAD:類似于 GET 請(qǐng)求,只不過(guò)返回的響應(yīng)中沒(méi)有具體的內(nèi)容,用于獲取報(bào)頭。
 - POST:指定資源提交數(shù)據(jù),請(qǐng)求服務(wù)器進(jìn)行處理(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請(qǐng)求文本中。這個(gè)請(qǐng)求可能會(huì)創(chuàng)建新的資源或者修改現(xiàn)有資源,或兩者皆有。
 - PUT:從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容。
 - DELETE:請(qǐng)求服務(wù)器刪除 Request-URI 所標(biāo)識(shí)的資源。
 - OPTIONS:使服務(wù)器傳回該資源所支持的所有HTTP請(qǐng)求方法。用*來(lái)代替資源名稱,向 Web 服務(wù)器發(fā)送 OPTIONS 請(qǐng)求,可以測(cè)試服務(wù)器功能是否正常運(yùn)作。
 - TRACE:回顯服務(wù)器收到的請(qǐng)求,主要用于測(cè)試或診斷。
 - PTATCH:是對(duì) PUT 方法的補(bǔ)充,用來(lái)對(duì)已知資源進(jìn)行局部更新 。
 - CONNECT:HTTP/1.1 中預(yù)留給能夠?qū)⑦B接改為通道方式的代理服務(wù)器。通常用于 SSL 加密服務(wù)器的鏈接(經(jīng)由非加密的 HTTP 代理服務(wù)器)。
 
GET和POST請(qǐng)求的區(qū)別:
- GET提交的數(shù)據(jù)會(huì)放在URL之后,以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連。 POST方法是把提交的數(shù)據(jù)放在HTTP包的Body中。
 - GET提交的數(shù)據(jù)大小有限制(因?yàn)闉g覽器對(duì)URL的長(zhǎng)度有限制),而POST方法提交的數(shù)據(jù)沒(méi)有限制。
 - GET請(qǐng)求參數(shù)會(huì)被完整保留在瀏覽器歷史記錄里,而POST中的參數(shù)不會(huì)被保留。
 - GET請(qǐng)求會(huì)被瀏覽器主動(dòng)cach,而POST不會(huì),除非手動(dòng)設(shè)置。
 - 對(duì)參數(shù)的數(shù)據(jù)類型,GET只接受ASCII字符,而POST沒(méi)有限制。
 - GET比POST更不安全,因?yàn)閰?shù)直接暴露在URL上,所以不能用來(lái)傳遞敏感信息。
 - GET產(chǎn)生一個(gè)TCP數(shù)據(jù)包;POST產(chǎn)生兩個(gè)TCP數(shù)據(jù)包。(但有些瀏覽器下post產(chǎn)生一個(gè)數(shù)據(jù)包)
 - GET請(qǐng)求時(shí)冪等的,POST請(qǐng)求是不冪等的。(HTTP方法的冪等性是指一次和多次請(qǐng)求某一個(gè)資源應(yīng)該具有同樣的副作用)。
 - 但GET和POST本質(zhì)上并沒(méi)有差別。具體可見(jiàn):
 
http狀態(tài)碼
1XX:提示信息—表示請(qǐng)求已接收,繼續(xù)處理。
2XX:成功,操作被成功接收并處理。
3XX:重定向,需要進(jìn)一步的操作以完成請(qǐng)求。
4XX:客戶端錯(cuò)誤,請(qǐng)求包含語(yǔ)法錯(cuò)誤或無(wú)法完成請(qǐng)求。
5XX:服務(wù)器錯(cuò)誤,服務(wù)器在處理請(qǐng)求的過(guò)程中發(fā)生了錯(cuò)誤。
常用狀態(tài)碼:
- 100:繼續(xù)??蛻舳藨?yīng)繼續(xù)其請(qǐng)求。
 - 101:切換協(xié)議。服務(wù)器根據(jù)客戶端的請(qǐng)求切換協(xié)議。只能切換到更高級(jí)的協(xié)議,例如,切換到HTTP的新版本協(xié)議。
 - 200:請(qǐng)求成功。一般用于GET與POST請(qǐng)求。
 - 204:表示請(qǐng)求成功,但響應(yīng)報(bào)文不含實(shí)體的主體部分。
 - 301:永久移動(dòng)。請(qǐng)求的資源已被永久的移動(dòng)到新URI,返回信息會(huì)包括新的URI,瀏覽器會(huì)自動(dòng)定向到新URI。今后任何新的請(qǐng)求都應(yīng)使用新的URI代替。
 - 302:臨時(shí)移動(dòng)。與301類似。但資源只是臨時(shí)被移動(dòng)??蛻舳藨?yīng)繼續(xù)使用原有URI。
 - 303:查看其它地址。與301類似。使用GET和POST請(qǐng)求查看。
 - 304:未修改。所請(qǐng)求的資源未修改,服務(wù)器返回此狀態(tài)碼時(shí),不會(huì)返回任何資源??蛻舳送ǔ?huì)緩存訪問(wèn)過(guò)的資源,通過(guò)提供一個(gè)頭信息指出客戶端希望只返回在指定日期之后修改的資源。
 - 400:客戶端請(qǐng)求的語(yǔ)法錯(cuò)誤,服務(wù)器無(wú)法理解。
 - 403:服務(wù)器理解請(qǐng)求客戶端的請(qǐng)求,但是拒絕執(zhí)行此請(qǐng)求。
 - 404:服務(wù)器無(wú)法根據(jù)客戶端的請(qǐng)求找到資源(網(wǎng)頁(yè))。通過(guò)此代碼,網(wǎng)站設(shè)計(jì)人員可設(shè)置"您所請(qǐng)求的資源無(wú)法找到"的個(gè)性頁(yè)面。
 - 405:客戶端請(qǐng)求中的方法被禁止。
 - 500:服務(wù)器內(nèi)部錯(cuò)誤,無(wú)法完成請(qǐng)求。
 - 502:作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí),從遠(yuǎn)程服務(wù)器接收到了一個(gè)無(wú)效的響應(yīng)。
 - 503:由于超載或系統(tǒng)維護(hù),服務(wù)器暫時(shí)的無(wú)法處理客戶端的請(qǐng)求。延時(shí)的長(zhǎng)度可包含在服務(wù)器的Retry-After頭信息中。
 - 504:充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器,未及時(shí)從遠(yuǎn)端服務(wù)器獲取請(qǐng)求。
 
HTTP 消息結(jié)構(gòu)
客戶端請(qǐng)求消息:
客戶端發(fā)送一個(gè)HTTP請(qǐng)求到服務(wù)器的請(qǐng)求消息包括以下格式:請(qǐng)求行(request line)、請(qǐng)求頭部(header)、空行和請(qǐng)求數(shù)據(jù)四個(gè)部分組成。
實(shí)例:
GET /hello.txt HTTP/1.1 User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Host: www.example.com Accept-Language: en, mi服務(wù)器響應(yīng)消息:
HTTP響應(yīng)也由四個(gè)部分組成,分別是:狀態(tài)行、消息報(bào)頭、空行和響應(yīng)正文。
實(shí)例:
HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Accept-Ranges: bytes Content-Length: 51 Vary: Accept-Encoding Content-Type: text/plainHTTP首部
《圖解HTTP》——HTTP首部。
什么是HTTPS
HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標(biāo)的HTTP通道,簡(jiǎn)單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。
HTTP和HTTPS的區(qū)別
- HTTPS更加安全,HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比HTTP協(xié)議的信息明文傳輸安全。
 - HTTPS 需要到 CA 申請(qǐng)證書(shū),一般免費(fèi)證書(shū)很少,需要交費(fèi)。
 - 端口號(hào)不同:HTTP默認(rèn)端口號(hào)80,HTTPS默認(rèn)端口號(hào)443。
 - 狀態(tài)不同:HTTP的連接很簡(jiǎn)單,是無(wú)狀態(tài)的。而HTTPS協(xié)議是SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比HTTP協(xié)議安全;
 
總結(jié)
以上是生活随笔為你收集整理的http get 消息的作用是什么?_http基础知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
                            
                        - 上一篇: 2013 Esri全球用户大会之元数据支
 - 下一篇: SQLServer基础:Apply关键字