2019年10月26日 星期六

Something about HTTP

錨點(Anchor) : 在URL的結尾附近會看到井字號(#),這個功能目的是為了讓瀏覽者能從跳到另一頁時回到原本的頁面處,或是做為同一頁面的位置快速導向。

HTTP的表頭(header)中referer 主要用來讓伺服器來判斷使用者是從哪個頁面來的,比如從搜尋網站或是其他合作網站連結過來的,其他用途可做為判斷網站內的圖檔如果不是同網域內來的就不能看到此圖片,不過因為這個referer容易被偽造後續被拿來應用的機會就很少了。

關於瀏覽器的快取(cache),request的header 會使用Pragma:no-cache 和 Cache-Control : no-cache 目的是一樣的,主要是前者為HTPP 1.0中定義而為了相容才會這兩個同時使用。
而這個快取的機制就曾經在工作上遇到問題,因為IE很討厭的就算設定"從不"使用快取有時也沒有用,所以只好在每個request(包含各個宣告引用javascript檔案)串上當下時間字串,讓瀏覽器不去用快取而去server取新檔案。因為在js某個版本有修改,但使用者端因為快取沒去下載會導致網站發生異常等error事件,所以強迫串上會變動的URL。如: abj.js ? ts=84736138
後面的ts參數所帶的值就會在每次進到該頁面時都不一樣,這樣就不會有快取的情況。

沒有留言:

張貼留言

AI 時代的影響(2026-10-24的心得)

  寫了半個世紀程式、 曾出版《Clean Code》教全世界工程師把程式碼寫乾淨的 Robert C. Martin(Uncle Bob), 最近公開表示他已經有超過 95% 的時間不再逐行閱讀 AI 寫的程式碼。 一位一生都在強調「程式碼是寫給人讀的」宗師級人物,何以敢做出...