2012-05-23 36 views
6

Theo như tôi biết, có thể truyền tệp nhị phân qua giao thức HTTP. Nhưng HTTP là giao thức dựa trên văn bản, khung phản hồi HTTP điển hình trông như sau:Truyền tệp qua HTTP

HTTP/1.1 200 OK 
Date: Wed, 23 May 2012 22:38:34 GMT 
Content-Length: 438 
Content-Type: text/html; charset=UTF-8 

Here goes content 

Nếu vậy, tệp nhị phân phải được mã hóa như thế nào? Loại nội dung là gì? Nội dung có được mã hóa bằng base64 - giống như tệp đính kèm trong giao thức POP3 không? Hoặc đó là dữ liệu thô (có thể không gây ra vấn đề nếu như vậy?)

Trả lời

9

Trường tiêu đề dựa trên văn bản, nhưng trọng tải thực tế là nhị phân. Bạn có thể chuyển bất cứ điều gì bạn muốn.

Và không, nó không liên quan gì đến Content-Type. Đó chỉ là một nhãn để người nhận biết cách xử lý dữ liệu; nó không ảnh hưởng đến định dạng trong chính giao thức đó.

0

Tệp nhị phân thường được chuyển với ứng dụng/octet-stream mimetype (trừ khi chúng khớp với một mimetype cụ thể khác). Để truyền, bạn sử dụng dữ liệu thô - không cần base64.

+0

nhưng đây là giao thức dựa trên văn bản, điều gì về mã hóa ký tự dòng mới và thứ tự byte? –

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