在前端開發中,判斷當前網頁的傳輸協定(Protocol)是常見的需求,特別是在需要強制執行 HTTPS 安全連線或進行環境檢測時。透過 JavaScript 的 location 物件,我們可以輕鬆獲取當前的協議資訊。
⚡ 快速跳轉(依實務情境選擇):
核心語法與範例
若要取得當前網頁的協議,直接存取 location.protocol 即可。該屬性會返回一個包含結尾冒號的字串(例如 http: 或 https:)。
// 取得當前協議
const currentProtocol = location.protocol;
console.log(currentProtocol);
// 若為 HTTPS 網頁,輸出: "https:"
// 若為 HTTP 網頁,輸出: "http:"
範例情境:
假設當前網址為 https://www.seanacnet.com:80/js/location-protocol.html,執行 location.protocol 將會回傳 "https:"。
實務情境:根據 protocol 自動轉導 HTTPS
在生產環境中,為了確保資料傳輸安全性,我們經常需要偵測當前是否為 http:,若是則自動轉導至 https:。以下為實務上的檢查與轉導寫法:
// 檢查是否為 http 協議
if (location.protocol === 'http:') {
// 將當前網址中的 http 替換為 https 並重新導向
location.href = location.href.replace('http:', 'https:');
}
這段程式碼會自動判斷當前環境,若偵測到非加密連線,會觸發瀏覽器跳轉至對應的 HTTPS 網址,確保使用者始終處於加密連線狀態。
瀏覽器相容性與延伸閱讀
location.protocol 為 Web API 的標準屬性,在所有現代瀏覽器中均有良好的支援度。詳細的瀏覽器相容性清單可參考 MDN 官方文件。
若您需要更全面地操作網址資訊,例如解析 Query String、取得 Hostname 或 Port 等,建議參考這篇整理完整的技術教學:
點此深入了解:JavaScript 取得網址 URL 與相關參數 (location 物件詳細教學)
1 則自動引用通知