2009-04-04 50 views

Trả lời

67

Range được sử dụng trong yêu cầu, để yêu cầu một phạm vi cụ thể (hoặc dãy) byte. Content-Range được sử dụng trong phản hồi, để chỉ ra byte mà máy chủ đang cung cấp cho bạn (có thể khác với phạm vi bạn yêu cầu), cũng như thời gian toàn bộ nội dung (nếu biết).

+7

Đọc câu trả lời btimby bên dưới. –

+2

@BrunoMartinez Trong khi bạn có thể sử dụng Phạm vi nội dung trong yêu cầu, nó đã được khá rõ ràng từ câu hỏi mà OP đã được hỏi về tải nội dung với một phạm vi cụ thể. Tôi đã trả lời dựa trên những gì OP đã yêu cầu, không cố gắng đưa ra một mô tả toàn diện về mọi trường hợp trong đó Phạm vi nội dung có thể được sử dụng. –

+3

@BrianCampbell bạn tất nhiên là chính xác. Tôi chỉ muốn ghi lại những phát hiện của mình vì mục đích của hậu thế. Tôi đã chỉnh sửa câu trả lời của mình để đảm bảo câu trả lời không cho thấy câu trả lời của bạn là sai. – btimby

113

Thực ra, câu trả lời được chấp nhận chưa hoàn thành. Phạm vi nội dung không chỉ được sử dụng trong phản hồi. Nó cũng là hợp pháp trong các yêu cầu cung cấp một cơ quan thực thể.

Ví dụ, một PUT HTTP cung cấp một thực thể, nó có thể chỉ cung cấp một phần của một thực thể. Do đó, yêu cầu PUT có thể bao gồm tiêu đề Phạm vi nội dung cho biết máy chủ nơi phần nội dung thực thể một phần sẽ được hợp nhất vào thực thể.

Ví dụ, trước tiên hãy tạo và sau đó nối vào một tập tin sử dụng HTTP:

Yêu cầu 1:

PUT /file HTTP/1.1 
Host: server 
Content-Length: 1 

a 

Yêu cầu 2:

PUT /file HTTP/1.1 
Host: server 
Content-Range: 1-2/* 
Content-Length: 1 

a 

thế nào, chúng ta hãy xem nội dung của tập tin ...

Yêu cầu 3:

GET /file HTTP/1.1 
Host: server 

HTTP/1.1 200 OK 
Content-Length: 2 

aa 

Điều này cho phép truy cập tệp ngẫu nhiên, cả READING và WRITING qua HTTP. Tôi chỉ muốn làm rõ, vì tôi đã nghiên cứu việc sử dụng Phạm vi nội dung trong ứng dụng WebDAV mà tôi đang phát triển, vì vậy, có lẽ thông tin được mở rộng này sẽ hữu ích cho người khác.

+6

Phạm vi nội dung không hợp pháp trong các yêu cầu. –

+10

Nhận xét đó không đúng. RFC2616 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16) không giới hạn tiêu đề 'Content-Range' cho các yêu cầu, nhưng liên kết nó với một phần" body-body " . Nó thực sự rất phổ biến để sử dụng tính năng này để tạo điều kiện tiếp tục tải lên hoặc tải lên chunked. – Hank

+1

Nhận xét của Mark là chính xác. Xem: http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-23, phần 4.3.4. – grzes

Các vấn đề liên quan