iT邦幫忙

2023 iThome 鐵人賽

DAY 7
1

HTTP(HyperText Transfer Protocol,超文本傳輸協定)是一種應用層協定,用於在聯網裝置之間傳輸資訊。

  • 為一種請求-回應(request-response)協定
  • 透過 HTTP 的典型流程 : 用戶端機器向伺服器發出請求,然後伺服器傳送回應訊息。

實際使用上,HTTP協定定義了一系列「方法」(又稱 HTTP 指令動詞),用來表示請求的類型

最常用的HTTP方法有:

  • GET:請求傳回想要的資訊,通常以網站的形式
  • POST:用戶端向伺服器提交某些資訊
  • PUT:更新已有的資源。
  • DELETE:刪除資源。

其中GET和POST會大量出現在未來的實作當中,之後會針對這兩點去做詳細說明。


HTTP 狀態代碼

有看過經典的「404 NOT FOUND」嗎XD? 這就是狀態代碼。

狀態代碼用來表示HTTP請求是否已成功完成

  • HTTP狀態代碼為3位數代碼
  • 開頭碼的意思
    • 1xx 參考資訊 : 代表主機先暫時回應用戶端一個狀態
    • 2xx 成功完成
    • 3xx 重新導向
    • 4xx 用戶端錯誤
    • 5xx 伺服器錯誤

HTTP 請求標頭

  • 當瀏覽器或其他用戶端發送 HTTP 請求到伺服器時,標頭會提供有關請求的附加信息。
  • 如請求的類型、用戶端的類型、所需的回應格式等。
  • 常見的 HTTP 請求標頭及其用途:
    1. Host:指定目標伺服器的域名或 IP 地址。
    2. User-Agent:描述發送請求的用戶端(通常是瀏覽器)的信息。
      • 例:User-Agent: Mozilla/5.0
    3. Accept:用戶端能夠接收的媒體類型(MIME types)。
      • 例:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
    4. Accept-Language:用戶端接受的語言。
      • 例:Accept-Language: en-US,en;q=0.9
        舉例一個 GET 請求,用於獲取 www.example.com 上的 index.html 頁面。
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5

HTTP 回應標頭

伺服器在回應 HTTP 請求時返回的一組鍵值對,用以描述回應的屬性和狀態。
這些標頭可以提供多種有用的信息,包括資源的類型、許可權、緩存策略等。

  • 常見的 HTTP 回應標頭及其用途:
  1. Content-Type:回應主體的媒體類型(MIME type)。
    • 例:Content-Type: text/html
  2. Content-Length:回應主體的長度,以字節為單位。
    • 例:Content-Length: 438
  3. Cache-Control:指示緩存行為的指令。
    • 例:Cache-Control: no-cache, no-store, must-revalidate
  4. Set-Cookie:設置或更新存儲在用戶端的 Cookie。
    • 例:Set-Cookie: sessionId=abc123; Path=/; Expires=Wed, 09 Jun 2021 10:18:14 GMT
  5. Location:當回應狀態碼是 3xx(重定向)時,該標頭會指示新的 URL 位置。
  6. Server:描述伺服器軟體的信息。
    • 例:Server: Apache/2.4.1 (Unix)
  7. WWW-Authenticate:指示需要某種認證方法來訪問資源。
    • 例:WWW-Authenticate: Basic realm="Example"
  8. Date:回應產生的日期和時間。

參考資料

HTTP 狀態碼一覽表


今天到這邊,我們明天見啦/images/emoticon/emoticon08.gif


上一篇
【DAY06】URL & 網域購買
下一篇
【DAY08】基本爬蟲聊聊
系列文
30天全端:關於網站實作的聊聊30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言