傷不起的http和狀態碼

2021-08-17 06:36:18 字數 1601 閱讀 2633

301,302對使用者來說沒有區別,他們看到效果只是乙個跳轉,瀏覽器中舊的url變成了新的url。頁面跳到了這個新的url指向的地方。

301就直接訪問新的**url但是302就可以實現網頁劫持,就是說在你的網域名稱下有很多的網頁302到你的網頁下,但其實是自己的url,實際訪問的是你的內容,就好像是你的內容被盜竊一樣。所以儘量減少302的使用。

引自這個部落格內容

http狀態碼有哪些,這也是乙個很高頻的面試問題。

一般大家都知道404頁面不存在,500伺服器錯誤,301重定向,302臨時重定向,200ok,401未授權啥的。

如果只是簡單的這樣答,可能只能讓面試官給你的答案打個五六十分,不足以給面試官留下良好的印象,為了展現自己良好的http知識,你或許可以重點介紹三個狀態碼及相關的知識,他們分別是304協商快取,101協議公升級,以及307hsts跳轉。

304協商快取

先從304協商快取開始吧。這是比較基礎的知識。相信我,只要你提起304協商快取,面試官一定會忍不住問你,什麼是協商快取?

這時就到了你展示一下自己豐富的瀏覽器快取知識的時候了。我一般會這麼答:瀏覽器快取分為強制快取和協商快取,優先讀取強制快取。

強制快取分為expires和cache-control,而expires是乙個特定的時間,是比較舊的標準和cache-control通常是乙個具體的時間長度,比較新,優先順序也比較高。

而協商快取包括etag和last-modified,last-modified的設定標準是資源的上次修改時間,而etag是為了應對資源修改時間可能很頻繁的情況出現的,是基於資源的內容計算出來的值,因此優先順序也較高。

協商快取與強制快取的區別在於強制快取不需要訪問伺服器,返回結果是200,協商快取需要訪問伺服器,如果命中快取的話,返回結果是304。

101協議公升級

主要用於websocket,也可以用於http2的公升級。

websocket的特點和功效不細說,大家都很熟了。

當然這時候我們可能要應對一下面試官接下來的追問:到底https,http,http2以及它的原形spdy有什麼區別,又分別有什麼優點和不足,他們的建立連線分別又有著什麼環節,這些知識就需要讀者自己去充分搜尋查詢了。

307 hsts跳轉

這個比較高階,原本的用法是用於讓post請求的跳轉去新的post請求,但也用於hsts跳轉。

hsts全稱http嚴格傳輸安全(http strict transport security,縮寫:hsts),功能是要求瀏覽器下次訪問該站點時使用https來訪問,而不再需要先是http再轉https。這樣可以避免ssl剝離攻擊,即攻擊者在使用者使用http訪問的過程中進行攻擊,對伺服器冒充自己是使用者,在攻擊者和伺服器中使用https訪問,在使用者和伺服器中使用http訪問。

具體使用方法是在伺服器響應頭中新增 strict-transport-security,可以設定 max-age

當然,提到了ssl剝離攻擊,你一定很感興趣還有什麼方法可以對號稱安全的https進行攻擊呢?我這裡了解到的有ssl劫持攻擊,大概就是信任第三方的安全證書,這點被利用於**軟體監聽https。如果還有更多的,歡迎補充。

總結僅僅三個狀態碼,都可以牽涉到如此豐富的知識,對於狀態碼,我們不能只是片面的去背誦狀態碼及對應的含義,要去主動挖掘,深入,借助http狀態碼來建立自己的網路體系。

傷不起的 4 0

文章mark net4.0新特性之互操作,以後有機會多看看這些新內容。網上很多例子都有c 呼叫c dll的方法,今天想試試,所以抄寫了乙個。當我一開始執行,異常!pinvoke什麼什麼的,奇怪。查了半天,終於知道了有可能是我在import的時候引數型別沒有對應上來,所以又好好的對照了一次引數型別,結...

蛋蛋的傷不起

前幾天開發中遇到了乙個問題,在進行除錯的過程中發現配置在service層的事務不起作用,丟擲異常後資料庫的更新還是成功了,事務並沒有回滾,然後就開始各種檢查,檢視spring的事務是否配置正確,進入更新方法時是否開啟了事務,經過檢查之後發現一切都正常,那為什麼事務不回滾呢?問題出在了乙個很難會去考慮...

ACM的你傷不起

勞資六年前開始搞acm啊!從此踏上了尼瑪不歸路啊!誰特麼跟勞資講演算法是程式設計的核心啊!尼瑪除了面試題就沒見過用演算法的地方啊!誰再跟勞資講演算法之美演算法的力量,勞資一本演算法導論拍死你啊!那是搞acm的入門書啊!特麼的入門書就一千多頁啊!還沒有習題答案啊,學完了你特麼都不知道自己到底會不會啊有...