2011-12-24 34 views
6

Trong tiêu đề HTTP có thể là nhiều dòng.Sự nhầm lẫn tiêu đề HTTP nhiều dòng

Ví dụ:

Word-Of-The-Day: The Fox Jumps Over
                con chó màu nâu.

Tuy nhiên, khi đọc tiêu chuẩn, tôi đi đến kết luận rằng hàng đầu và dấu khoảng trắng CÓ THỂ được gỡ bỏ, vì vậy chúng tôi có được "The Fox nhảy overthe chó màu nâu." Overthe trở thành một từ khi thực sự nó nên đã được "Over the" (hai từ, tách biệt bởi khoảng trắng).

Làm cách nào để xử lý phân tích các giá trị HTTP trong các trường hợp như thế này, tức là làm cách nào để nối các tiêu đề HTTP-multiline với cùng một tiêu đề như một dòng tiêu đề?

Trả lời

12

Khoảng trắng trước the không phải là đầu và cuối.

Section 4.2 of the standard xác định khoảng trắng đầu/cuối là "khoảng trắng tuyến tính xuất hiện trước ký tự không khoảng trắng đầu tiên của giá trị trường hoặc sau ký tự không khoảng trắng cuối cùng của giá trị trường". Không gian này không phải trước ký tự đầu tiên của giá trị trường cũng như ký tự cuối cùng.

Quy tắc cho loại không gian màu trắng tuyến tính này, bên trong giá trị trường, là nó "CÓ THỂ được thay thế bằng một dấu cách duy nhất trước khi diễn giải giá trị trường hoặc chuyển tiếp thư ở hạ lưu".

Vì vậy, chúng tôi nhận được "The Fox Jumps Over the brown dog".

+0

Tôi đọc điều đó, nó chắc chắn trông giống như một khoảng trắng hàng đầu khi tôi nhìn vào một bãi chứa. Đã không nghĩ về nó như ở giữa bởi vì nó là sự khởi đầu của một dòng. – unixman83