Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[zh-TW]: update HTTP Header "Accept" #25351

Merged
merged 3 commits into from
Jan 13, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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")}}
Loading