Content-Location header
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Tiêu đề HTTP Content-Location biểu diễn chỉ ra vị trí thay thế cho dữ liệu được trả về.
Mục đích chính của nó là chỉ ra URL của tài nguyên được truyền như kết quả của thương lượng nội dung.
Tiêu đề Content-Location khác với tiêu đề Location.
Content-Location chỉ ra URL trực tiếp để truy cập tài nguyên khi thương lượng nội dung đã xảy ra, cho phép máy khách bỏ qua thương lượng nội dung trong tương lai cho tài nguyên này.
Mặt khác, Location chỉ ra mục tiêu của chuyển hướng 3XX hoặc URL của tài nguyên mới được tạo trong phản hồi 201 Created.
| Loại tiêu đề | Tiêu đề biểu diễn |
|---|---|
| Tiêu đề yêu cầu bị cấm | Không |
Cú pháp
Content-Location: <url>
Chỉ thị
Ví dụ
>Yêu cầu dữ liệu từ máy chủ ở các định dạng khác nhau
Giả sử API của một trang web có thể trả về dữ liệu ở định dạng JSON, XML, hoặc CSV. Nếu URL cho một tài liệu cụ thể là tại https://example.com/documents/foo, trang web có thể trả về các URL Content-Location khác nhau tùy thuộc vào tiêu đề Accept của yêu cầu:
| Tiêu đề yêu cầu | Tiêu đề phản hồi |
|---|---|
Accept: application/json, text/json |
Content-Location: /documents/foo.json |
Accept: application/xml, text/xml |
Content-Location: /documents/foo.xml |
Accept: text/plain, text/* |
Content-Location: /documents/foo.txt |
Sau đó, máy khách có thể nhớ rằng phiên bản JSON có sẵn tại URL cụ thể đó, bỏ qua thương lượng nội dung lần tiếp theo khi yêu cầu tài liệu đó.
Chỉ ra URL kết quả của giao dịch
Giả sử bạn có một <form> để gửi tiền cho người dùng khác của trang web.
<form action="/send-payment" method="post">
<p>
<label>
Bạn muốn gửi tiền cho ai?
<input type="text" name="recipient" />
</label>
</p>
<p>
<label>
Bao nhiêu?
<input type="number" name="amount" />
</label>
</p>
<button type="submit">Gửi tiền</button>
</form>
Khi biểu mẫu được gửi, trang web tạo biên lai cho giao dịch. Máy chủ có thể sử dụng Content-Location để chỉ ra URL của biên lai đó cho việc truy cập trong tương lai.
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Location: /my-receipts/38
<!doctype html>
(Lots of HTML…)
<p>You sent $38.00 to ExampleUser.</p>
(Lots more HTML…)
Thông số kỹ thuật
| Specification |
|---|
| HTTP Semantics> # field.content-location> |