wordpress創(chuàng)建知識庫seo網(wǎng)站優(yōu)化培訓(xùn)要多少錢
文章目錄
- 簡介
- HTTP1.0和HTTP1.1的區(qū)別
- 請求和響應(yīng)報文
- 報文的格式
- 請求報文
- form表單發(fā)送GET請求特點(diǎn)
- GET請求行,請求頭,請求體
- form表單發(fā)送post請求特點(diǎn)
- post的請求行 請求頭 請求體
- 響應(yīng)報文
- 響應(yīng)狀態(tài)碼
- 更多的響應(yīng)狀態(tài)碼
簡介
-
HTTP 超文本傳輸協(xié)議 (HTTP-Hyper Text transfer protocol)
-
是一種詳細(xì)規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間**(客戶端和服務(wù)器之間)互相通信的規(guī)則**
-
客戶端與服務(wù)端通信時傳輸?shù)膬?nèi)容我們稱之為報文。HTTP協(xié)議就是規(guī)定報文的格式
-
交互的方式
- 請求:永遠(yuǎn)都是客戶端向服務(wù)端發(fā)送
- 響應(yīng):永遠(yuǎn)都是服務(wù)端向客戶端返回
-
數(shù)據(jù)的格式
- 請求時發(fā)送的數(shù)據(jù)(客戶端發(fā)送給服務(wù)器的) 稱之為請求報文
- 響應(yīng)式返回的數(shù)據(jù)(服務(wù)器發(fā)送給客戶端的) 稱之為響應(yīng)報文
-
報文有規(guī)定的格式
報文首部 請求報文 響應(yīng)報文 行 請求行 響應(yīng)行 頭 請求頭 響應(yīng)頭 報文主體 請求體 響應(yīng)體
HTTP1.0和HTTP1.1的區(qū)別
? 在HTTP1.0版本中,瀏覽器請求一個帶有圖片的網(wǎng)頁,會由于下載圖片(或其他資源)而與服務(wù)器之間開啟一個新的連接;但在HTTP1.1版本中,允許瀏覽器在拿到當(dāng)前請求對應(yīng)的全部資源后再斷開連接,提高了效率?!?mark>長鏈接和短鏈接
? 另外1.1支持緩存,將已經(jīng)加載過的圖片等資源保留在本地,下次無需請求即可從本地獲取圖片資源
請求和響應(yīng)報文
報文的格式
- 主體上分為報文首部和報文主體,中間空行隔開
- 報文部首可以繼續(xù)細(xì)分為 “行” 和 “頭”
請求報文
- 請求報文格式
- 請求首行(請求行); GET/POST(請求方式) 資源路徑?參數(shù)(請求的資源路徑) HTTP/1.1(請求協(xié)議)
- 請求頭信息(請求頭);
- 空行;
- 請求體;POST請求才有請求體
- 瀏覽器 f12 網(wǎng)絡(luò)下查看請求數(shù)據(jù)包
form表單發(fā)送GET請求特點(diǎn)
1、由于請求參數(shù)在請求首行中已經(jīng)攜帶了,所以沒有請求體,也沒有請求空行
2、請求參數(shù)拼接在url地址中,地址欄可見[url?name1=value1&name2=value2],不安全
3、由于參數(shù)在地址欄中攜帶,所以由大小限制[地址欄數(shù)據(jù)大小一般限制為4k],只能攜帶純文本
4、get請求參數(shù)只能上傳文本數(shù)據(jù)
5、沒有請求體。所以封裝和解析都快,效率高, 瀏覽器默認(rèn)提交的請求都是get請求比如:地址欄輸入回車,超鏈接,表單默認(rèn)的提交方式
GET請求行,請求頭,請求體
請求行組成部分
- 請求方式 GET
- 訪問服務(wù)器的資源路徑?參數(shù)1=值1&參數(shù)2=值2 … …
- 協(xié)議及版本 HTTP/1.1
GET /05_web_tomcat/login_success.html?username=admin&password=123213 HTTP/1.1
- 請求頭
-主機(jī)虛擬地址
Host: localhost:8080
-長連接
Connection: keep-alive
-請求協(xié)議的自動升級[http的請求,服務(wù)器卻是https的,瀏覽器自動會將請求協(xié)議升級為https的]
Upgrade-Insecure-Requests: 1
- 用戶系統(tǒng)信息
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36
- 瀏覽器支持的文件類型
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
- 當(dāng)前頁面的上一個頁面的路徑[當(dāng)前頁面通過哪個頁面跳轉(zhuǎn)過來的]: 可以通過此路徑跳轉(zhuǎn)回上一個頁面, 廣告計費(fèi),防止盜鏈
Referer: http://localhost:8080/05_web_tomcat/login.html
- 瀏覽器支持的壓縮格式
Accept-Encoding: gzip, deflate, br
- 瀏覽器支持的語言
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
-
請求空行
-
請求體
- GET請求數(shù)據(jù)不放在請求體
form表單發(fā)送post請求特點(diǎn)
1、POST請求有請求體,而GET請求沒有請求體。
2、post請求數(shù)據(jù)在請求體中攜帶,請求體數(shù)據(jù)大小沒有限制,可以用來上傳所有內(nèi)容[文件、文本]
3、只能使用post請求上傳文件
4、post請求報文多了和請求體相關(guān)的配置[請求頭]
5、地址欄參數(shù)不可見,相對安全
6、post效率比get低
post的請求行 請求頭 請求體
請求行組成部分
- 請求方式 POST
- 訪問服務(wù)器的資源路徑?參數(shù)1=值1&參數(shù)2=值2 … …
- 協(xié)議及版本 HTTP/1.1
POST /05_web_tomcat/login_success.html HTTP/1.1
- 請求頭
Host: localhost:8080
Connection: keep-alive
Content-Length: 31 -請求體內(nèi)容的長度
Cache-Control: max-age=0 -無緩存
Origin: http://localhost:8080
Upgrade-Insecure-Requests: 1 -協(xié)議的自動升級
Content-Type: application/x-www-form-urlencoded -請求體內(nèi)容類型[服務(wù)器根據(jù)類型解析請求體參數(shù)]
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://localhost:8080/05_web_tomcat/login.html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
Cookie:JSESSIONID-
-
請求空行
-
請求體:瀏覽器提交給服務(wù)器的數(shù)據(jù)
username=admin&password=1232131
響應(yīng)報文
- 響應(yīng)報文格式
- 響應(yīng)首行(響應(yīng)行); 協(xié)議/版本 狀態(tài)碼 狀態(tài)碼描述
- 響應(yīng)頭信息(響應(yīng)頭);
- 空行;
- 響應(yīng)體;
- 響應(yīng)行組成部分
- 協(xié)議及版本 HTTP/1.1
- 響應(yīng)狀態(tài)碼 200
- 狀態(tài)描述 OK (缺省)
HTTP/1.1 200 OK
說明:響應(yīng)協(xié)議為HTTP1.1,響應(yīng)狀態(tài)碼為200,表示請求成功;
- 響應(yīng)頭
Server: Apache-Coyote/1.1 服務(wù)器的版本信息
Accept-Ranges: bytes
ETag: W/"157-1534126125811"
Last-Modified: Mon, 13 Aug 2018 02:08:45 GMT
Content-Type: text/html 響應(yīng)體數(shù)據(jù)的類型[瀏覽器根據(jù)類型解析響應(yīng)體數(shù)據(jù)]
Content-Length: 157 響應(yīng)體內(nèi)容的字節(jié)數(shù)
Date: Mon, 13 Aug 2018 02:47:57 GMT 響應(yīng)的時間,這可能會有8小時的時區(qū)差
- 響應(yīng)體
<!--需要瀏覽器解析使用的內(nèi)容[如果響應(yīng)的是html頁面,最終響應(yīng)體內(nèi)容會被瀏覽器顯示到頁面中]--><!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>Insert title here</title></head><body>恭喜你,登錄成功了...</body>
</html>
響應(yīng)狀態(tài)碼
響應(yīng)碼對瀏覽器來說很重要,它告訴瀏覽器響應(yīng)的結(jié)果。比較有代表性的響應(yīng)碼如下:
- 200: 請求成功,瀏覽器會把響應(yīng)體內(nèi)容(通常是html)顯示在瀏覽器中;
- 302: 重定向,當(dāng)響應(yīng)碼為302時,表示服務(wù)器要求瀏覽器重新再發(fā)一個請求,服務(wù)器會發(fā)送一個響應(yīng)頭Location指定新請求的URL地址;
- 304: 使用了本地緩存
- 404: 請求的資源沒有找到,說明客戶端錯誤的請求了不存在的資源;
- 405: 請求的方式不允許
- 500: 請求資源找到了,但服務(wù)器內(nèi)部出現(xiàn)了錯誤
更多的響應(yīng)狀態(tài)碼
狀態(tài)碼 | 狀態(tài)碼英文描述 | 中文含義 |
---|---|---|
1** | ||
100 | Continue | 繼續(xù)??蛻舳藨?yīng)繼續(xù)其請求 |
101 | Switching Protocols | 切換協(xié)議。服務(wù)器根據(jù)客戶端的請求切換協(xié)議。只能切換到更高級的協(xié)議,例如,切換到HTTP的新版本協(xié)議 |
2** | ||
200 | OK | 請求成功。一般用于GET與POST請求 |
201 | Created | 已創(chuàng)建。成功請求并創(chuàng)建了新的資源 |
202 | Accepted | 已接受。已經(jīng)接受請求,但未處理完成 |
203 | Non-Authoritative Information | 非授權(quán)信息。請求成功。但返回的meta信息不在原始的服務(wù)器,而是一個副本 |
204 | No Content | 無內(nèi)容。服務(wù)器成功處理,但未返回內(nèi)容。在未更新網(wǎng)頁的情況下,可確保瀏覽器繼續(xù)顯示當(dāng)前文檔 |
205 | Reset Content | 重置內(nèi)容。服務(wù)器處理成功,用戶終端(例如:瀏覽器)應(yīng)重置文檔視圖??赏ㄟ^此返回碼清除瀏覽器的表單域 |
206 | Partial Content | 部分內(nèi)容。服務(wù)器成功處理了部分GET請求 |
3** | ||
300 | Multiple Choices | 多種選擇。請求的資源可包括多個位置,相應(yīng)可返回一個資源特征與地址的列表用于用戶終端(例如:瀏覽器)選擇 |
301 | Moved Permanently | 永久移動。請求的資源已被永久的移動到新URI,返回信息會包括新的URI,瀏覽器會自動定向到新URI。今后任何新的請求都應(yīng)使用新的URI代替 |
302 | Found | 臨時移動。與301類似。但資源只是臨時被移動??蛻舳藨?yīng)繼續(xù)使用原有URI |
303 | See Other | 查看其它地址。與301類似。使用GET和POST請求查看 |
304 | Not Modified | 未修改。所請求的資源未修改,服務(wù)器返回此狀態(tài)碼時,不會返回任何資源。客戶端通常會緩存訪問過的資源,通過提供一個頭信息指出客戶端希望只返回在指定日期之后修改的資源 |
305 | Use Proxy | 使用代理。所請求的資源必須通過代理訪問 |
306 | Unused | 已經(jīng)被廢棄的HTTP狀態(tài)碼 |
307 | Temporary Redirect | 臨時重定向。與302類似。使用GET請求重定向 |
4** | ||
400 | Bad Request | 客戶端請求的語法錯誤,服務(wù)器無法理解 |
401 | Unauthorized | 請求要求用戶的身份認(rèn)證 |
402 | Payment Required | 保留,將來使用 |
403 | Forbidden | 服務(wù)器理解請求客戶端的請求,但是拒絕執(zhí)行此請求 |
404 | Not Found | 服務(wù)器無法根據(jù)客戶端的請求找到資源(網(wǎng)頁)。通過此代碼,網(wǎng)站設(shè)計人員可設(shè)置"您所請求的資源無法找到"的個性頁面 |
405 | Method Not Allowed | 客戶端請求中的方法被禁止 |
406 | Not Acceptable | 服務(wù)器無法根據(jù)客戶端請求的內(nèi)容特性完成請求 |
407 | Proxy Authentication Required | 請求要求代理的身份認(rèn)證,與401類似,但請求者應(yīng)當(dāng)使用代理進(jìn)行授權(quán) |
408 | Request Time-out | 服務(wù)器等待客戶端發(fā)送的請求時間過長,超時 |
409 | Conflict | 服務(wù)器完成客戶端的 PUT 請求時可能返回此代碼,服務(wù)器處理請求時發(fā)生了沖突 |
410 | Gone | 客戶端請求的資源已經(jīng)不存在。410不同于404,如果資源以前有現(xiàn)在被永久刪除了可使用410代碼,網(wǎng)站設(shè)計人員可通過301代碼指定資源的新位置 |
411 | Length Required | 服務(wù)器無法處理客戶端發(fā)送的不帶Content-Length的請求信息 |
412 | Precondition Failed | 客戶端請求信息的先決條件錯誤 |
413 | Request Entity Too Large | 由于請求的實(shí)體過大,服務(wù)器無法處理,因此拒絕請求。為防止客戶端的連續(xù)請求,服務(wù)器可能會關(guān)閉連接。如果只是服務(wù)器暫時無法處理,則會包含一個Retry-After的響應(yīng)信息 |
414 | Request-URI Too Large | 請求的URI過長(URI通常為網(wǎng)址),服務(wù)器無法處理 |
415 | Unsupported Media Type | 服務(wù)器無法處理請求附帶的媒體格式 |
416 | Requested range not satisfiable | 客戶端請求的范圍無效 |
417 | Expectation Failed | 服務(wù)器無法滿足Expect的請求頭信息 |
5** | ||
500 | Internal Server Error | 服務(wù)器內(nèi)部錯誤,無法完成請求 |
501 | Not Implemented | 服務(wù)器不支持請求的功能,無法完成請求 |
502 | Bad Gateway | 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請求時,從遠(yuǎn)程服務(wù)器接收到了一個無效的響應(yīng) |
503 | Service Unavailable | 由于超載或系統(tǒng)維護(hù),服務(wù)器暫時的無法處理客戶端的請求。延時的長度可包含在服務(wù)器的Retry-After頭信息中 |
504 | Gateway Time-out | 充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器,未及時從遠(yuǎn)端服務(wù)器獲取請求 |
505 | HTTP Version not supported | 服務(wù)器不支持請求的HTTP協(xié)議的版本,無法完成處理 |