Content negotiation là gì?
- ★
- ★
- ★
- ★
- ★
Trong HTTP, content negotiation là cơ chế được sử dụng để cung cấp các biểu diễn (representation) khác nhau của một tài nguyên (resource) cho cùng một URI để giúp user agent chỉ định cách biểu diễn nào phù hợp nhất với người dùng (ví dụ: ngôn ngữ tài liệu (document) nào, định dạng hình ảnh nào hoặc mã hóa nội dung (content encoding)). Một cách sử dụng cổ điển của cơ chế này là cung cấp hình ảnh ở định dạng GIF hoặc PNG để trình duyệt không thể hiển thị hình ảnh PNG (ví dụ: MS Internet Explorer 4) sẽ được cung cấp phiên bản GIF.
Một tài liệu cụ thể được gọi là tài nguyên. Khi một máy khách (client) muốn lấy một tài nguyên, máy khách sẽ yêu cầu nó thông qua một URL. Máy chủ (server) sử dụng URL này để chọn một trong các biến thể có sẵn – mỗi biến thể được gọi là một biểu diễn (representation) – và trả về một biểu diễn cụ thể cho máy khách. Content negotiation xác định cách biểu diễn cụ thể được chọn khi tài nguyên được gọi. Có một số cách content negotiation giữa máy khách và máy chủ.
Biểu diễn phù hợp nhất được xác định thông qua một trong hai cơ chế:
- Các HTTP header cụ thể của máy khách (server-driven negotiation hoặc proactive negotiation) là cách tiêu chuẩn để content negotiation một loại tài nguyên cụ thể.
- Mã phản hồi HTTP (response code) 300 hoặc 406 , 415 bởi máy chủ (agent-driven negotiation hoặc reactive negotiation).
Để hiểu rõ thuật ngữ này xem thêm server-driven negotiation và agent-driven negotiation.
Learning English Everyday