HTTP - Tham số

Chương này sẽ liệt kê một số Tham số Giao thức HTTP quan trọng và cú pháp của chúng theo cách chúng được sử dụng trong giao tiếp. Ví dụ: định dạng cho ngày tháng, định dạng URL, v.v. Điều này sẽ giúp bạn xây dựng các thông báo yêu cầu và phản hồi trong khi viết các chương trình máy khách hoặc máy chủ HTTP. Bạn sẽ thấy cách sử dụng đầy đủ các tham số này trong các chương tiếp theo trong khi tìm hiểu cấu trúc thông báo cho các yêu cầu và phản hồi HTTP.

Phiên bản HTTP

HTTP sử dụng một <major>.<minor>lược đồ đánh số để chỉ ra các phiên bản của giao thức. Phiên bản của thông báo HTTP được chỉ ra bởi trường HTTP-Version trong dòng đầu tiên. Đây là cú pháp chung của việc chỉ định số phiên bản HTTP:

HTTP-Version   = "HTTP" "/" 1*DIGIT "." 1*DIGIT

Thí dụ

HTTP/1.0

or

HTTP/1.1

Số nhận dạng tài nguyên thống nhất

Số nhận dạng tài nguyên đồng nhất (URI) được định dạng đơn giản, chuỗi phân biệt chữ hoa chữ thường chứa tên, vị trí, v.v. để xác định tài nguyên, ví dụ: một trang web, dịch vụ web, v.v. Cú pháp chung của URI được sử dụng cho HTTP như sau:

URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

Đây nếu port trống hoặc không được cung cấp, cổng 80 được giả định cho HTTP và trống abs_path tương đương với một abs_pathcủa "/". Các ký tự khác với những ký tự trongreservedunsafe bộ tương đương với mã hóa ""% "HEX HEX" của chúng.

Thí dụ

Ba URI sau đây là tương đương:

http://abc.com:80/~smith/home.html
http://ABC.com/%7Esmith/home.html
http://ABC.com:/%7esmith/home.html

Định dạng ngày / giờ

Tất cả các tem ngày / giờ HTTP PHẢI được thể hiện bằng Giờ trung bình Greenwich (GMT), không có ngoại lệ. Các ứng dụng HTTP được phép sử dụng bất kỳ biểu hiện nào sau đây của ba biểu tượng dấu ngày / giờ:

Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format

Bộ nhân vật

Chúng tôi sử dụng các bộ ký tự để chỉ định các bộ ký tự mà khách hàng ưa thích. Nhiều bộ ký tự có thể được liệt kê cách nhau bằng dấu phẩy. Nếu giá trị không được chỉ định, giá trị mặc định là US-ASCII.

Thí dụ

Sau đây là các bộ ký tự hợp lệ:

US-ASCII

or

ISO-8859-1

or 

ISO-8859-7

Mã hóa nội dung

Giá trị mã hóa nội dung cho biết rằng một thuật toán mã hóa đã được sử dụng để mã hóa nội dung trước khi chuyển nội dung đó qua mạng. Mã hóa nội dung chủ yếu được sử dụng để cho phép tài liệu được nén hoặc chuyển đổi một cách hữu ích mà không làm mất danh tính.

Tất cả các giá trị mã hóa nội dung đều không phân biệt chữ hoa chữ thường. HTTP / 1.1 sử dụng các giá trị mã hóa nội dung trong trường tiêu đề Chấp nhận mã hóa và Mã hóa nội dung mà chúng ta sẽ thấy trong các chương tiếp theo.

Thí dụ

Sau đây là các lược đồ mã hóa hợp lệ:

Accept-encoding: gzip

or

Accept-encoding: compress

or 

Accept-encoding: deflate

Các loại phương tiện

HTTP sử dụng Các loại phương tiện Internet trong Content-TypeAccepttrường tiêu đề để cung cấp tính năng nhập dữ liệu mở và có thể mở rộng và thương lượng kiểu. Tất cả các giá trị kiểu Phương tiện được đăng ký với Cơ quan cấp số được ấn định trên Internet (IANA). Cú pháp chung để chỉ định loại phương tiện như sau:

media-type     = type "/" subtype *( ";" parameter )

Tên thuộc tính type, subtype và tham số không phân biệt chữ hoa chữ thường.

Thí dụ

Accept: image/gif

Thẻ ngôn ngữ

HTTP sử dụng các thẻ ngôn ngữ trong Accept-LanguageContent-Languagelĩnh vực. Thẻ ngôn ngữ bao gồm một hoặc nhiều phần: thẻ ngôn ngữ chính và một loạt thẻ phụ có thể trống:

language-tag  = primary-tag *( "-" subtag )

Khoảng trắng không được phép trong thẻ và tất cả các thẻ không phân biệt chữ hoa chữ thường.

Thí dụ

Các thẻ mẫu bao gồm:

en, en-US, en-cockney, i-cherokee, x-pig-latin

trong đó bất kỳ thẻ chính gồm hai chữ cái nào là từ viết tắt của ngôn ngữ ISO-639 và bất kỳ thẻ phụ nào có hai chữ cái đầu tiên là mã quốc gia ISO-3166.