Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Lập trình Web & Backend] Content negotiation với q-value

    Thương lượng nội dung với q-value

    Header Accept có thể liệt kê nhiều kiểu kèm trọng số chất lượng q (0..1). Kiểu không ghi q mặc định q=1. Server chọn kiểu được hỗ trợ có q lớn nhất (q>0). Nếu hòa, chọn kiểu xuất hiện trước trong header.

    Server hỗ trợ (theo thứ tự ưu tiên nội bộ không quan trọng): application/json, text/html, text/plain.

    • Nếu chọn được kiểu hỗ trợ với q>0 → 200 <type>.
    • Nếu không có kiểu hỗ trợ nào (hoặc tất cả q=0) → 406.

    Accept gồm các mục cách nhau bởi , (không có khoảng trắng), mỗi mục dạng type hoặc type;q=GIATRI.

    Ví dụ

    Input: text/html;q=0.8,application/json;q=0.9 → 200 application/json (q cao hơn).

    • Định dạng đầu vào:

      Một dòng header Accept, các mục cách nhau bởi ,.

    • Ràng buộc đầu vào:

      ≤ 10 mục. q có dạng 0, 1, hoặc số thập phân ≤ 3 chữ số sau dấu chấm.

    • Định dạng đầu ra:

      200 <type> với type được chọn, hoặc 406.

    Ví dụ:

    Đầu vào:

    text/html;q=0.8,application/json;q=0.9
    

    Đầu ra:

    200 application/json

    Giải thích:

    application/json có q=0.9 cao hơn text/html q=0.8 nên được chọn.

    Đang tải editor...