Thông tin bắt buộc mà Tiêu đề yêu cầu HTTP phải có là gì?


Câu trả lời:


36

GET / HTTP/1.0 là một yêu cầu HTTP hợp pháp.

Nếu không có Hosttrường tiêu đề, bạn có thể không nhận được kết quả mà bạn hy vọng nếu máy chủ đích là máy chủ ảo không có địa chỉ IP riêng để phân biệt với các máy chủ ảo khác.

HTTP 1.1 yêu cầu Hosttrường.


1
Tôi đã tự nghiên cứu một chút và bạn nói đúng @gbroiles. Đối với lưu trữ ảo dựa trên tên, một trình duyệt có HTTP 1.1 là bắt buộc nói chung. Các trình duyệt gửi tên máy chủ trong tiêu đề máy chủ và máy chủ Web phục vụ các máy chủ ảo dựa trên tên nếu được định cấu hình. Với các trình duyệt cũ hơn và HTTP 1.0 là điều có thể, nhưng bạn cần một cách giải quyết như Chỉ thị ServerPath của apache. May mắn thay, các trình duyệt mới hơn triển khai các tiện ích mở rộng khi sử dụng HTTP 1.0 để đảm bảo gửi trường tiêu đề máy chủ. w3.org/Prot Protocol / rfc2616 / rfc2616
Stephan Kristyn

1
Vẫn còn các trình duyệt thực sự làm HTTP 1.0?
Pacerier

Rất nhiều tác nhân người dùng sử dụng HTTP 1.0. Những người sử dụng trình duyệt web sẽ sử dụng HTTP 1.1 hoặc 2.0 nếu có thể nhưng họ có thể truy cập qua proxy chỉ hỗ trợ HTTP 1.0. Trình thu thập thông tin hoặc bot có thể sử dụng HTTP 1.0. Các máy khách đơn giản như wgetsử dụng HTTP 1.0. Lưu ý rằng không cần nỗ lực phía máy chủ để hỗ trợ máy khách HTTP 1.0, bởi vì máy chủ tuân thủ HTTP 1.1 sẽ hỗ trợ máy khách HTTP 1.0 (HTTP 1.1 được xây dựng để cải tiến lũy tiến trên HTTP 1.0; các tính năng không tương thích như chunked mã hóa và giữ nguyên mặc định tắt cho các yêu cầu HTTP 1.0).
thomasrutter

3

Không có Tiêu đề HTTP nào được yêu cầu trong Yêu cầu. Không có tiêu đề Phản hồi yêu cầu hoặc.

Tất cả những điều đó và hơn thế nữa trong HTTP 1.1 - RFC 2616


15
Bạn đang nhầm. Theo RFC mà bạn đã liên kết ở đây: "Máy khách PHẢI bao gồm trường tiêu đề Máy chủ trong tất cả các thông báo yêu cầu HTTP / 1.1". Vì vậy, Hosttiêu đề bắt buộc.
dùng219882

2
Đúng, nhưng không có yêu cầu nào khách hàng sử dụng HTTP / 1.1 ngay từ đầu.
Chris S

2
Độ dài nội dung hoặc mã hóa chuyển giao chỉ bắt buộc nếu một thực thể được gửi cùng với yêu cầu hoặc phản hồi và trong nhiều trường hợp, yêu cầu hoặc phản hồi sẽ thiếu một thực thể (như yêu cầu GET hoặc phản hồi 302).
Brandon Rhodes

6
Tôi không thể downvote nhưng câu trả lời này là sai. Vui lòng sửa hoặc xóa.
vikingsteve

4
Tôi đồng ý với vikingsteve. Câu trả lời của bạn ngụ ý rằng HTTP 1.1 không có bất kỳ tiêu đề bắt buộc nào.
nullstellensatz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.