HTTP協(xié)議報(bào)文以及報(bào)文內(nèi)容說明

HTTP不同版本的區(qū)別

  • HTTP1.0
    1:支持POST、HEAD等請(qǐng)求方法、支持請(qǐng)求頭、響應(yīng)頭、支持多種數(shù)據(jù)類型
    2:瀏覽器每次請(qǐng)求都需要與服務(wù)器建立一個(gè)TCP連接,請(qǐng)求處理完畢以后立即斷開TCP連接
  • HTTP1.1
    1:支持PUT、DELETE等請(qǐng)求方法
    2:采用持久連接Connection:keep-alive,多個(gè)請(qǐng)求可以共用同一個(gè)TCP連接
  • HTTP2.0

HTTP報(bào)文格式

HTTP標(biāo)準(zhǔn):由萬維網(wǎng)協(xié)會(huì)(W3C)互聯(lián)網(wǎng)工程任務(wù)組(IETF)協(xié)調(diào)指定,最終發(fā)布了一系列的RFC
RFC:Request For Comments-請(qǐng)求意見稿

HTTP報(bào)文格式

HTTP請(qǐng)求報(bào)文
方法 URI 版本 CRLF 請(qǐng)求行
首部字段名 : CRLF 首部行
...
首部字段名 : CRLF 首部行
CRLF
實(shí)體主體
HTTP響應(yīng)報(bào)文
版本 狀態(tài)嗎 短語 CRLF 狀態(tài)行
首部字段名 : CRLF 首部行
...
首部字段名 : CRLF 首部行
CRLF
實(shí)體主體

HTTP報(bào)文內(nèi)容說明

  • HTTP請(qǐng)求方法
    GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE
方法 說明
GET 用于讀取操作、請(qǐng)求參數(shù)直接拼接到URL后邊(瀏覽器對(duì)URL參數(shù)長(zhǎng)度由限制)
POST 常用于添加、修改、刪除的操作,請(qǐng)求參數(shù)可以放到請(qǐng)求體中(沒有限制大?。?/td>
HEAD 請(qǐng)求得到與GET請(qǐng)求相同的響應(yīng),但是沒有請(qǐng)求題(獲取資源大?。?/td>
OPTIONS 御用獲取目的資源所支持的通信選項(xiàng),比如服務(wù)器支持的請(qǐng)求方式
PUT 用于對(duì)已存在的資源進(jìn)行整體覆蓋
DELETE 用于刪除資源
TRACE 請(qǐng)求服務(wù)器回顯其收到的請(qǐng)求信息,主要用于HTTP請(qǐng)求的測(cè)試或診斷
CONNECT 可以開啟一個(gè)客戶端與所請(qǐng)求資源之間的雙向溝通的渠道,創(chuàng)建隧道
  • HTTP請(qǐng)求頭字段Request Header Filed
頭部字段 說明 事例
User-Agent 瀏覽器身份標(biāo)識(shí)字段 User-Agent:xxxx
Host 服務(wù)器的域名端口號(hào) Host:xxxxx
Date 發(fā)送該消息的日期和時(shí)間 Date:xxx
Refer 標(biāo)識(shí)一個(gè)瀏覽器所訪問的上一個(gè)頁面 Refer:xxx
Content-Type 請(qǐng)求的類型 Content-Type:multipart/form-data
Content-Length 請(qǐng)求體的長(zhǎng)度(以字節(jié)為單位) Content-Type:6666
Accept 能夠接收響應(yīng)的類型(Content-Types) Accept:text/plain
Accept-Charset 能夠接受的字符集 Accept-Charest:GB232 , utf-8
Accept-Encoding 能夠接受的編碼方式列表 Accept-Encoding :gzip
Accept-Langue 能夠接受的響應(yīng)內(nèi)容的自然語言列表 Accept-Langue:en-US
Origin 發(fā)起一個(gè)針對(duì)跨域資源共享的請(qǐng)求 Origin:www.bai.com
Cookie 之前由服務(wù)器設(shè)置set-Cookie發(fā)送的Cookie Origin:www.bai.com
Connection 該瀏覽器想要有限使用的連接類型 Connection:keep-alive
Cache-Control 用來指定在這次的請(qǐng)求/響應(yīng)鏈中的所有緩存機(jī)制都必須遵守的指令 Cache-Control:np-cache
  • HTTP響應(yīng)頭字段Response Header Filed
頭部字段 說明 示例
Last-Modified 所請(qǐng)求對(duì)象的最后修改日期 Last-Modified:xxxx
Server 服務(wù)器的名字 Server:xxxxx
Expires 指定一個(gè)時(shí)間,超過該時(shí)間則認(rèn)為此響應(yīng)已過期 Expires:xxx
Refer 標(biāo)識(shí)一個(gè)瀏覽器所訪問的上一個(gè)頁面 Refer:xxx
Content-Disposition 一個(gè)可以讓客戶端下載文件并建議文件名的頭部 Content-Disposition:attachment; filename="fname.text"
Access-Control-allow-Origin 指定哪些網(wǎng)站可參與到跨域來源資源共享過程中 Access-Control-allow-Origin:*
Set-Cookie 返回一個(gè)Cookie讓客戶端去保存 Set-Cookie:UserID=xxx;Max-Age=3600;Version=1
Cache-Control 告知客戶端的緩存機(jī)制對(duì)象,是否可緩存這個(gè)對(duì)象,單位為秒 Cache-Control:max-age=3600
  • HTTP返回狀態(tài)碼
    狀態(tài)碼種類
頭部字段 說明
信息響應(yīng) 100~199
成功響應(yīng) 200~299
重定向 300~399
客戶端錯(cuò)誤 400~499
服務(wù)器錯(cuò)誤 500~599

常用狀態(tài)碼

狀態(tài)碼 短語 說明
100 Continue 請(qǐng)求初始部分已經(jīng)被服務(wù)器收到,并且沒有被服務(wù)器明確拒絕??蛻舳藨?yīng)該發(fā)送剩余的請(qǐng)求、如果請(qǐng)求已經(jīng)完成,就忽略這個(gè)響應(yīng)
200 OK 請(qǐng)求成功
302 Found 重定向請(qǐng)求的資源被暫時(shí)的移動(dòng)到了右Location頭部指定的URL上
304 Not Modified 說明無須再次傳輸請(qǐng)求的內(nèi)容,也就是說可以使用緩存的數(shù)據(jù)
400 Bad Request 語法無效,服務(wù)器無法理解該請(qǐng)求
401 Unauthorized 由于缺乏目標(biāo)資源要求的身份驗(yàn)證憑證
403 Forbidden 服務(wù)器右能力處理該請(qǐng)求,但是拒絕授權(quán)訪問
404 Not Found 服務(wù)端無法找到所請(qǐng)求的資源
405 Method Not Allowed 服務(wù)器禁止了使用當(dāng)前的HTTP方法請(qǐng)求
408 Request Timeout 服務(wù)器想要將沒有在使用的連接關(guān)閉
500 Internal Server Error 請(qǐng)求服務(wù)器遇到意外,并阻止其執(zhí)行請(qǐng)求

跨域問題

瀏覽器有個(gè)同源策略(Same-Origin Policy)
規(guī)定:默認(rèn)情況下,AJAX請(qǐng)求只能發(fā)送同源的URL
同源指:協(xié)議、域名(IP)、端口

問題:前后端代碼分離,部署在不同的服務(wù)器上,頁面訪問數(shù)據(jù)在不同服務(wù)器會(huì)產(chǎn)生跨域問題。

解決跨域問題:跨域資源共享(Cors: Cross-Origin Resource Shareing)Cros需要瀏覽器、服務(wù)器共同實(shí)現(xiàn)。
客戶端:所有瀏覽器都支持(IE至少是IE10版本)
服務(wù)器:響應(yīng)頭設(shè)置:Access-Control-Allow-Origin: *


Cookie和Session

  • Cookie:
    客戶端(瀏覽器)存儲(chǔ)一些數(shù)據(jù),存儲(chǔ)到本地磁盤(硬盤)
    服務(wù)器返回Cookie交給客戶端存儲(chǔ)
    請(qǐng)求數(shù)據(jù)時(shí),瀏覽器自動(dòng)帶上Cookie。
  • Session
    在服務(wù)器中存儲(chǔ)一些數(shù)據(jù),存儲(chǔ)在服務(wù)器內(nèi)存中

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容