關於HTTP,我們需要知道的事兒

2021-08-22 02:25:51 字數 3986 閱讀 3119

報文首部與報文主體之間存在空行。

(1)http請求報文http請求報文 = 報文首部 + 報文主體(請求引數)

報文首部 = 請求行 + 通用首部字段 + 請求首部字段 + 實體首部字段 + 其它

請求行 = 請求方法 + http版本 + uri

(2)http響應報文

http響應報文 = 報文首部 + 報文主體(返回內容)

報文首部 =狀態行 + 通用首部字段 +響應首部字段 + 實體首部字段 + 其它

狀態行 = http版本 + 狀態碼

(1) 強制快取

expires 是 http 1.0 的字段,而 cache-control 是 http 1.1 的字段,當 expires 與 cache-control 同時存在時,cache-control 的優先順序要高於 expires。 cache-control是相對時間,單位為秒;expires為絕對時間。

(2) 協商快取

根據etag(雜湊值)判斷是否快取;服務端下發給客戶端 last-modified,客戶端獲取後,下次請求帶上 last-modified-since。

補充說明:expires要求客戶端和服務端的時鐘嚴格同步。http1.1引入cache-control來克服expires頭的限制。如果max-age和expires同時出現,則max-age有更高的優先順序。

front-end-https 微軟應用程式和負載均衡器使用的非標準header欄位 front-end-https: on。

對應關係:

etag —— if-none-match

last-modified —— if-modified-since

參考鏈結——

防止跨站請求偽造

x-csrf-token,x-csrftoken,x-xsrf-token 

x-csrf-token: i8xnjc4b8kvok4uw5rftr38wgp2bfwql

跨域

access-control-allow-origin 指定哪些站點可以參與跨站資源共享

access-control-allow-origin: *

set-cookie 設定http cookie

set-cookie: userid=johndoe; max-age=3600; version=1

status 設定http響應狀態

status: 200 ok

x-xss-protection 過濾跨站指令碼

x-xss-protection: 1; mode=block
x-ua-compatible 推薦首選的渲染引擎來展示內容,通常向後相容,也用於啟用ie中內嵌chrome框架外掛程式

x-ua-compatible: ie=emulateie7

x-ua-compatible: ie=edge

x-ua-compatible: chrome=1

(1)form-data 和 request playload的區別

(1)重定向

301表示舊位址a的資源已經被永久地移除了(這個資源不可訪問了),搜尋引擎在抓取新內容的同時也將舊的**換為重定向之後的**。

302表示舊位址a的資源還在(仍然可以訪問),這個重定向只是臨時地從舊位址a跳轉到位址b,搜尋引擎會抓取新的內容而儲存舊的**。 seo 302好於301。

(2)閘道器

閘道器錯誤:502 扮演閘道器或者**角色的伺服器沒有接收到來自上游伺服器的正確響應。

閘道器超時:504 扮演閘道器或者**角色的伺服器沒有及時響應。

(3)**

500 internal privoxy error

privoxy encountered an error while processing your request:

could not load template file no-server-data or one of its included components.

please contact your proxy administrator.

if you are the proxy administrator, please put the required file(s)in the (confdir)/templates directory. the location of the (confdir) directory is specified in the main privoxy config file. (it』s typically the privoxy install directory).

請求的服務無法響應**伺服器的請求。

macbook air的谷歌瀏覽器報出的錯誤,現象是**只能夠載入部分,以致於無法顯示。後面排查是nginx錯誤:2019/02/15 20:27:29 [crit] 4939#0: *169 open() "/usr/local/nginx/tmp/proxy//1/03/0000000031" failed (13: permission denied) while readin......

解決:修改nginx的配置檔案nginx.conf,在檔案首行加上:user root;

**或者授權對應資料夾許可權。**比如chmod -r 764 /usr/local/nginx/fastcgi_temp/

補充說明:該nginx問題,在不同作業系統的不同瀏覽器錯誤提示資訊不一樣。比如在macbook air的谷歌瀏覽器是:status code: 206 partial content。在window 10的谷歌瀏覽器是:failed to load resource: net::err_content_length_mismatch 200 ok;在macbook air的safari瀏覽器是:[error] failed to load resource: 網路連線已中斷。 (1497411317998.png, line 0)請求頭是顯示狀態是200 ok。

windows ie 11 顯示資訊:

ie的能夠部分顯示,剩餘部分是黑色:

請求頭和響應頭:

macos和windows下的火狐瀏覽器部分顯示,剩餘部分呈白色:

響應頭:

(1)cors

net::err_content_length_mismatch 200 ok

1.檢視請求頭content-length長度與實際檔案大小是否一致

2.**伺服器nginx許可權問題等

3.服務端**是否符合http規範

關於網路與IP,你需要知道這些事兒

http 協議的底層其實是由 tcp 協議和 ip 協議 簡稱 tcp ip 構建的。tcp的作用 保證資料的完整性和可靠性,防止丟包。常見問題 tcp 和 udp 的區別是什麼 簡答 tcp 可靠 面向連線 相對 udp 較慢 udp 不可靠,不面向連線 相對 tcp 較快。搞定。tcp 的三次握...

你需要知道的http協議

web互連 通訊 的基礎 tcp ip協議族,http屬於它內部的子集 web www 的三項構建技術 tcp ip協議族分層包括 資料鏈路層,網路層,傳輸層 應用層 tcp ip協議族分層作用 各層各司其職,模組劃分清晰,便於維護,解耦 區別 聯絡uri 統一資源識別符號,用字串標識某一網際網路資...

關於快取你需要知道的

作後端開發的同學,快取是必備技能。這是你不需要花費太多的精力就能顯著提公升服務效能的靈丹妙藥。前提是你得知道如何使用它,這樣才能夠最大限度發揮它的功效,並抑制其 本文將介紹最如何正確的新增和更新快取。這部分將介紹在開始加快取之前我們必須要做的事情。這步非常重要,如果沒弄好,很有可能加了快取反而不如不...