Skip to content

Commit

Permalink
[zh-TW]: update HTTP Header "Accept" (#25351)
Browse files Browse the repository at this point in the history
Co-authored-by: Jason Ren <[email protected]>
  • Loading branch information
Dr-XYZ and jasonren0403 authored Jan 13, 2025
1 parent 38d6919 commit 83c4205
Showing 1 changed file with 49 additions and 20 deletions.
69 changes: 49 additions & 20 deletions files/zh-tw/web/http/headers/accept/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,20 @@
title: Accept
slug: Web/HTTP/Headers/Accept
l10n:
sourceCommit: 7aab76c49ae49d606b4958f8dc8cd1269fb7b9b6
sourceCommit: f341bd4728d3448faf6b9fc3b45980c35c067f25
---

{{HTTPSidebar}}

**`Accept`** HTTP 請求標頭表示用戶端能夠理解的內容類型,表達為 [MIME 類型](/zh-TW/docs/Web/HTTP/MIME_types)。伺服器使用[內容協商](/zh-TW/docs/Web/HTTP/Content_negotiation)從提案中選擇一個並通過 {{HTTPHeader("Content-Type")}} 回應標頭通知客戶端選擇。瀏覽器根據請求的上下文設置此標頭的必要值。例如,瀏覽器在擷取 CSS 樣式表、圖片、影片或腳本時,在請求中使用不同的值。
HTTP **`Accept`** {{Glossary("request header", "請求標頭")}}和{{Glossary("response header", "回應標頭")}}表示發送者能夠理解的內容類型,以 [MIME 類型](/zh-TW/docs/Web/HTTP/MIME_types)表示。在請求中,伺服器使用[內容協商](/zh-TW/docs/Web/HTTP/Content_negotiation)選擇其中一個提案,並使用 {{HTTPHeader("Content-Type")}} 回應標頭通知用戶選擇的內容類型。在回應中,它提供伺服器能夠理解的內容類型訊息,以便在後續對資源的請求中使用該內容類型。

瀏覽器根據請求的上下文設置此標頭的必要值。例如,瀏覽器在請求 CSS 樣式表、圖片、視訊或腳本時使用不同的值。

<table class="properties">
<tbody>
<tr>
<th scope="row">標頭類型</th>
<td>{{Glossary("Response header", "回應標頭")}}</td>
</tr>
<td>{{Glossary("Request header", "請求標頭")}}、{{Glossary("Response header", "回應標頭")}}</tr>
<tr>
<th scope="row">{{Glossary("Forbidden header name", "禁止修改的標頭")}}</th>
<td>否</td>
Expand All @@ -24,46 +25,73 @@ l10n:
{{Glossary("CORS-safelisted response header", "CORS 安全清單回應標頭")}}
</th>
<td>
,附加限制為值不能包含<em>不安全的 CORS 請求標頭字節</em>:0x00-0x1F(除了 0x09(HT))、<code>"():&#x3C;>?@[\]{}</code> 和 0x7F(DEL)。
</td>
</tr>
</tbody>
</table>

\* 值不能包含 [CORS 不安全請求標頭字元](https://fetch.spec.whatwg.org/#cors-unsafe-request-header-byte),包括 `"():<>?@[\]{},`,刪除 `0x7F`,以及控制字元 `0x00``0x19`(除了 Tab `0x09`)。

## 語法

```http
Accept: <MIME_type>/<MIME_subtype>
Accept: <MIME_type>/*
Accept: <media-type>/<MIME_subtype>
Accept: <media-type>/*
Accept: */*
// 多種類型,以品質值語法加權
// 多種類型,以品質值語法加權
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8
```

## 指令

- `<MIME_type>/<MIME_subtype>`
- : 單一、精確的 [MIME 類型](/zh-TW/docs/Web/HTTP/MIME_types),如 `text/html`
- `<MIME_type>/*`
- : 一個 MIME 類型,但沒有子類型。`image/*` 對應於 `image/png``image/svg``image/gif` 和其他圖片類型。
- `<media-type>/<subtype>`
- : 單一、精確的[媒體類型](/zh-TW/docs/Web/HTTP/MIME_types),如 `text/html`
- `<media-type>/*`
- : 沒有子類型的媒體類型。例如,`image/*` 對應於 `image/png``image/svg``image/gif` 和其他圖片類型。
- `*/*`
- : 任何 MIME 類型
- : 任何媒體類型。
- `;q=`(q 因子加權)
- : 使用相對[品質值](/zh-TW/docs/Glossary/Quality_values)表達的偏好排序中放置的值,稱為*權重*
- : 使用相對{{Glossary("quality values", "品質值")}}表示的偏好值,稱為*權重*

## 範例

```http
Accept: text/html
### 使用預設的 Accept 請求標頭

Accept: image/*
使用命令行工具如 [curl](https://curl.se/)[wget](https://www.gnu.org/software/wget/) 發出的 HTTP 請求使用 `*/*` 作為預設的 `Accept` 值:

// General default
```http
GET / HTTP/1.1
Host: example.com
User-Agent: curl/8.7.1
Accept: */*
```

瀏覽器導航通常具有以下 `Accept` 請求標頭值:

// Default for navigation requests
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8
```http
GET /en-US/ HTTP/2
Host: developer.mozilla.org
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
```

在接收到文件後,對 `developer.mozilla.org` 範例中的圖片請求的預設 `Accept` 值如下所示:

```http
Accept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5
```

### 配置 Accept 請求標頭以獲取 JSON 回應

涉及 API 互動的系統通常請求 `application/json` 回應。以下是一個 {{HTTPMethod("GET")}} 請求的範例,其中用戶特別請求 JSON 回應:

```http
GET /users/123 HTTP/1.1
Host: example.com
Authorization: Bearer abcd123
Accept: application/json
```

## 規範
Expand All @@ -78,5 +106,6 @@ Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8

- HTTP [內容協商](/zh-TW/docs/Web/HTTP/Content_negotiation)
- [默認 Accept 值列表](/zh-TW/docs/Web/HTTP/Content_negotiation/List_of_default_Accept_values)
- [CORS 安全清單請求標頭限制](/zh-TW/docs/Glossary/CORS-safelisted_request_header#additional_restrictions)
- 具有內容協商結果的標頭:{{HTTPHeader("Content-Type")}}
- 其他類似的標頭:{{HTTPHeader("TE")}}、{{HTTPHeader("Accept-Encoding")}}、{{HTTPHeader("Accept-Language")}}

0 comments on commit 83c4205

Please sign in to comment.