2分鐘快速了解HTTP及HTTPS

HTTP和HTTPS快速了解

HTTP 全名是 超文本傳輸協定(HyperText Transfer Protocol),內容只規範了客戶端請求與伺服器回應的標準,實際上是藉由 TCP(Transmission Control Protocol)作為資料的傳輸方式。
HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法。簡而言之就是電腦和電腦之間的溝通方式。

但HTTP這個溝通方式是不安全的

因為HTTP是以明文方式來傳遞資料,非常容易被有心人士竊取。

HTTPS 全名 超文本傳輸安全協定 ,那個 S 就是 Secure 的意思;HTTPS 透過 HTTP 進行通訊,但通訊過程使用 SSL/TLS  進行加密,藉由類似於前述的加密方式,在 HTTP 之上定義了相對安全的資料傳輸方法。

HTTP Methods

常見的溝通方法有以下幾種:

  • GET:拿取資料
  • POST:上傳資料
  • PUT:修改資料(全部修改)
  • PATCH:修改資料(可部分修改)
  • DELETE:刪除資料

在用戶端向server發出請求後,server會發出回應,這些回應有時會直接在畫面上呈現
有些則需要使用開發人員工具來查看

大部分的情況基本上成功請求,且網頁有回應的話,都會是200
以下簡單介紹幾個常見的代碼

3xxRedirects

301轉址:也稱為301重新導向,即是將舊網址永久遷移至新網址。轉移過程不只是網址跳轉,還包括了頁面權重、流量,都會一併轉移。少了這個動作,搜尋引擎會將舊網址與新網址判斷為各自獨立的內容。

302轉址:為暫時性。有別301轉址將流量、頁面權重導向新網址,302轉址只有舊網址跳轉的功能,並不會轉移頁面權重。通常使用在臨時的狀況,如網站維護中的狀況,必須先將某個頁面轉到維修頁。

4xxClient Errors

客戶端發生錯誤,影響了伺服器處理

401 Unauthorized:401語意即「未認證」,即使用者沒有必要的憑據。該狀態碼表示當前請求需要使用者驗證。

403 Forbidden:伺服器理解請求,但是拒絕執行它。與401不同的是,身分驗證並不能提供任何幫助,而且這個請求也不應該被重複提交。如果這不是一個 HEAD 請求,而且伺服器希望能夠講清楚為何請求不能被執行,那麼就應該在實體內描述拒絕的原因。當然伺服器也可以返回一個404,假如它不希望讓客戶端獲得任何資訊。

404 Not Found:請求失敗,請求所希望得到的資源未被在伺服器上發現,但允許使用者的後續請求。

5xxServer Errors

server 收到請求,請求也有效,但 server 因為一些內部問題,無法完成。

500 Internal Server Error:通用錯誤訊息,伺服器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。沒有給出具體錯誤資訊。