2011-01-02 3 views
6

FTP는 주로 ASCII와 BINARY의 두 가지 전송 모드를 제공합니다.바이너리 모드에서 FTP'd 할 수없는 내용은 무엇입니까?

ASCII 모드는 일반적으로 텍스트 기반 콘텐츠 용이며 BINARY 모드에서 텍스트 기반 콘텐츠를 전송하는 것은 종종 완벽하게 안전하지만 일반적으로 BINARY 모드는 그대로 콘텐츠를 전송하기위한 것입니다.

전송 된 CGI 스크립트를 올바르게 실행하려면 ASCII 모드가 필요합니다. BINARY 모드로 전송 된 CGI 스크립트는 종종 실행시 HTTP 500을 발생시킵니다.

ASCII 모드로 전송해야하는 다른 유형의 콘텐츠가 있습니까? BINARY 모드로 전송할 때 ASCII 모드로 전송할 때 '중단'하지 않는 내용은 무엇입니까?

+0

정말인가요? CGI 스크립트가 바이너리 모드로 전송 될 필요가있을 것으로 기대됩니다. 또한, ascii가 라인 엔딩 등에 영향을 미칠 수있는 최적화를 할 수있는 반면, 바이너리는 좀 더 정확할 것으로 기대합니다. – GolezTrol

+0

"바이너리 모드에서 안전하게 FTP로 전송할 수없는 콘텐츠는 무엇입니까?"일반적인 FTP에서는 콘텐츠를 안전하게 전송할 수 없습니다. 어떤 종류의 암호화를 사용하십시오! ;-) – user502515

+0

예, 암호화에 대해 잊어 버렸습니다. : -/ – GolezTrol

답변

12

바이너리 모드는 모든 데이터에 대해 작동합니다.

CGI 스크립트의 문제점은 CRLF 줄 끝이있는 Windows에서 편집되는 경우가 많고 서버에서 줄 끝이 LF로만 예상된다는 것입니다. ASCII 모드는 이것을 해결합니다. 그러나 현대 서버는 더 이상이 점에 대해 신경 쓰지 않고 올바른 도구가 있으면 서버 쪽의 줄 끝을 변환 할 수 있으며 필요한 경우 줄 끝으로 LF를 사용하도록 클라이언트 측의 편집자에게 알릴 수도 있습니다 (적어도 Notepad ++가 이것을하는 것처럼 보입니다.)

나는 ASCII 캐릭터 세트이다해서, 캐릭터 세트를 ASCII 모드에서 일어나고 변환을 본적이 없어요.

업데이트 : ASCII 모드는 메인 프레임에 연결할 때 EBCDIC와 ASCII 사이의 데이터를 변환하는 데 사용할 수 있습니다. 이 경우 이진 모드는 전송 후 수동 변환이 필요합니다.

+0

charset 변환이 수행되면 ASCII 모드로 전환됩니다. 바이너리 모드는 바이너리 데이터만으로 간주되므로 해당 모드에서는 변환이 수행되지 않습니다. 그러나 FTP를 사용하여 데이터를 전송할 때 변환이 전혀 이루어지지 않았 으면 좋겠습니다. – GolezTrol

+0

@GolezTrol 문자셋 변환에 관한 나의 요지는 아스키 모드가 아스키 문자셋을 가정하고 (서버가 그것을 바꿀 힘이 없다) ASCII 모드에서도 일어나지 않아야한다는 것이다. –

+0

그렇다면 우리는 동의합니다. 미안하다. – GolezTrol

0

모뎀 연결 (데이터 전송에 7 비트 사용)을 통해 데이터를 더 적게 전송하기 위해 ASCII 모드가 만들어 졌다고 생각합니다. 따라서 BINARY 모드는 텍스트 또는 ASCII 모드로 전송할 수있는 다른 내용에도 사용할 수 있지만 약간 더 많은 대역폭을 사용합니다.

또한 UTF를 사용하면 실제로 텍스트를 전송하는 것이 안전하지 않습니다. 더 이상 ASCII로; 그래서 정말 - 현대 FTP 클라이언트는 이진 모드만을 사용합니다 ...

EDIT : 7 비트 전송 모드에 대한 내 대답이 올바르지 않습니다. ASCII 모드 : 텍스트에 사용됩니다. 데이터는 전송 호스트의 문자 표현에서 전송 전에 "8 비트 ASCII"로 변환되고, 필요하다면 다시 (필요에 따라) 변환됩니다.

이미지 모드 (일반적으로 바이너리 모드라고 함) : 보내는 컴퓨터는 바이트 단위로 각 파일을 보내고받는 사람은받는 사람의 문자 표현을 사용합니다. FTP를 구현할 때 이미지 모드 지원이 권장되었습니다. "

주 마지막 실제로 바이너리 모드는 모든 전송을 권장 말한다 문장 ... 모든 전송에 대한

SO 최하위 사용 BINARY, 당신은 괜찮을 것이다. 이 도움이

희망, Moszi

관련 문제