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ù)。