Tại sao email lớn hơn?
Bởi vì dữ liệu được mã hóa trong base64
đó mã hóa các nhóm có tối đa ba byte thành các nhóm gồm bốn ký tự ASCII có thể in được. Thông thường, các nhóm ký tự có thể in này sau đó được chia thành các dòng.
Kết quả là dữ liệu được mã hóa chỉ lớn hơn 1 lần so với kích thước của dữ liệu gốc.
Tại sao Base64 được sử dụng?
Email có một lịch sử lâu dài và ban đầu được thiết kế để mang văn bản. Chỉ các giá trị byte đại diện cho các ký tự có thể in ASCII mới có thể đi qua các hệ thống email khác nhau trên hành tinh.
Vì vậy, MIME đã chia ra hai sơ đồ để mã hóa dữ liệu khác dưới dạng văn bản ASCII - "có thể in được trích dẫn" được thiết kế cho phần lớn văn bản ASCII với một vài bit khác và "BASE64" cho dữ liệu nhị phân tùy ý.
Đã có các phần mở rộng cho giao thức SMTP để thử và loại bỏ các hạn chế này. Đầu tiên, 8BITMIME năm 1994, cho phép các giá trị octet cao hơn nhưng không may không xóa các giới hạn liên quan đến độ dài dòng và kết thúc dòng, do đó không phù hợp với dữ liệu nhị phân tùy ý; và sau đó là BINaryMIME vào năm 1995, cho phép chuyển các tin nhắn có chứa dữ liệu nhị phân tùy ý.
Tuy nhiên, các tiêu chuẩn này đã không được áp dụng rộng rãi. Một vấn đề là, điều gì xảy ra nếu một bước nhảy trong chuỗi thư hỗ trợ họ nhưng bước nhảy tiếp theo thì không? Sau đó, máy chủ thư không thể gửi thư theo nguyên trạng, nó phải từ chối nó dưới dạng không gửi được và bị trả lại (điều này không thể chấp nhận được đối với người dùng) hoặc chuyển đổi nó (yêu cầu thêm mã đáng kể trong máy chủ thư) . Chuyển đổi được thực hiện đặc biệt đau đớn bởi các quy tắc MIME liên quan đến việc không sử dụng mã hóa chuyển nội dung trên các loại nhiều phần.