Tại sao có chế độ ASCII trong FTP, phổ biến trong triển khai phần mềm và FTP ngày nay? Tại sao không chỉ luôn luôn sử dụng nhị phân bất kể dữ liệu?
Tại sao có chế độ ASCII trong FTP, phổ biến trong triển khai phần mềm và FTP ngày nay? Tại sao không chỉ luôn luôn sử dụng nhị phân bất kể dữ liệu?
Câu trả lời:
Khi nghi ngờ, hãy đọc RFC :
Cấu trúc tệp là mặc định được giả sử nếu lệnh STRUcture chưa được sử dụng nhưng cả cấu trúc tệp và bản ghi phải được chấp nhận cho các tệp "văn bản" (nghĩa là các tệp có TYPE ASCII hoặc EBCDIC) bởi tất cả các cài đặt FTP. Cấu trúc của một tệp sẽ ảnh hưởng đến cả chế độ truyền của tệp (xem Phần về Chế độ truyền) và việc giải thích và lưu trữ tệp.
Cấu trúc "tự nhiên" của tệp sẽ phụ thuộc vào máy chủ lưu trữ tệp. Một tệp mã nguồn thường sẽ được lưu trữ trên Mainframe của IBM trong các bản ghi độ dài cố định nhưng trên DEC TOPS-20 dưới dạng một dòng các ký tự được phân chia thành các dòng, ví dụ như bởi. Nếu việc chuyển các tệp giữa các trang khác nhau như vậy là hữu ích, thì phải có một cách nào đó để một trang web nhận ra các giả định của người khác về tệp.
v.v ... Tóm lại, đó là để đảm bảo rằng các biểu diễn văn bản trong một mã hóa đã được chuyển đổi đúng khi được chuyển đến các máy chủ sử dụng một mã hóa khác.
Bởi vì các hệ điều hành khác nhau (Windows, UNIX, VAX) sử dụng các phương thức kết thúc dòng khác nhau cho các tệp văn bản đơn giản.
Windows (DOS) sử dụng cặp CR / LF, UNIX chỉ sử dụng một trong số chúng. Chế độ ASCII chuyển đổi các cặp CRLF và chế độ BIN không.
Ron
Tôi nghĩ rằng đó chỉ là vì nó đôi khi thuận tiện. Ngày trước, khi FTP là cách bạn chuyển các tệp từ một hệ thống sang hệ thống tiếp theo, đó là một công cụ tiết kiệm thời gian lớn - bạn không cần phải biết hệ thống ở đầu bên kia để có một tệp văn bản có thể đọc được.
Nhưng vâng, chủ yếu là nó chỉ là một phiền toái ngày hôm nay. Chỉ là một cỗ máy tham nhũng cho những người không quen!
Chế độ ASCII đã trở lại vào thời điểm mà ký tự và mã hóa EOL là một vấn đề thực sự, nhưng tôi muốn thấy các khách hàng ftp xóa hoặc có lẽ chỉ cần ẩn tùy chọn này ngày hôm nay. Ngày nay, hầu hết chỉ là các quy ước EOL bị rối tung giữa các hệ thống, nhưng tôi đã thấy hầu hết các trình soạn thảo văn bản đàng hoàng không quan tâm nữa. Vì vậy, để tránh làm hỏng các tệp nhị phân (hoặc thậm chí một số tệp dựa trên văn bản), tôi khuyên bạn chỉ nên sử dụng chế độ nhị phân cho mọi thứ.
Chế độ ASCII được sử dụng để phần mềm có thể tự động thay đổi các ký tự EOL thành các giá trị phù hợp cho máy khách / máy chủ tùy thuộc vào việc bạn đang tải lên / tải xuống. Nếu bạn đang tải lên cùng loại hệ thống như bạn đang sử dụng, không có sự khác biệt trong các chế độ này.
Lý do cho chế độ này là vì không phải tất cả phần mềm trên tất cả các hệ thống sẽ xử lý chính xác EOL không phải là loại EOL chính xác (ví dụ: rất nhiều phần mềm Windows sẽ chỉ xử lý "\ r \ n" đúng cách và sẽ làm hỏng điều gì đó kinh khủng trên "\ n").