둘의 차이점에 대해서 이야기하기 전에 HTTP와 FTP는 과연 무엇인가에 대해 제대로 이야기를 해 볼 필요가 있다.


HTTP는 네트워크 Layer에서의 프로토콜이다.

프로토콜이니 뭐니 난 컴터에 대해선 잘 모르지만 HTTP는 그래도 어딘지 모르게 익숙한 것 같긴 하다? 

그렇다. 

웹 브라우저에서 어떤 사이트에 접속할 때 보았을 것이다.


e.g.

"http://www.naver.com" 

말이다.


그렇다면 이 프로토콜은 무엇인가 어떠한 일을 하는가?




워낙 중요한 컨셉이다 보니 다양한 방법으로, 다양한 관점에서 설명할 수 있다.

네트워크 layer 상에서의 프로토콜이다..

5 layer concept.. 의 관점에서 설명하면 당연히 이해하기 어려울 것이다.


따라서 별다른 배경지식이 없더라도 직관적으로 이해하기 쉽게 느껴질 웹 사용자의 관점에서 설명하겠다. 


크롬이든, 인터넷 익스플로러든 이 브라우저 창 URL 기입 란에 


e.g.

http://www.naver.com 


을 칠 경우, 


네이버 웹 페이지를 가지고 있는 "서버"로 웹 페이지 request (요청)을 날리게 되는데,

이 때 우리가 보내는 요청은 'server'에게 보내어진다. 


서버는 port number 라는 게 있고, 각 port number 는 각기 다른 process 를 관리한다.

이 포트 넘버는 그냥 하나의 "문"이라고 보면 된다. 


예를 들어, 데스크탑 뒤에 USB를 꽃는 부분이라던가 노트북에도 USB를 연결하는 부분 있지 않은가?


그러한 것들이 수백개, 수천개 있다고 상상해 보아라. 그 모든 것들이 port number 라고 생각하면 된다. 


어쨌든,


웹 페이지는 주로 '.html', '.css', '.php' 등의 확장자 파일을 가진 파일들이다. 

다소 생소하게 느껴지는가?

'.doc' 파일이나, '.pdf' 은 친숙하지 않은가? 

그냥 그것도 별다를 바 없는 파일인데 "확장자" i.e. '.html', '.css' 가 다르다고 보면 된다. (물론, 이 웹페이지 파일 내용은 외계어라는 점에서 내용은 많이 다르다)


어쨌든,

웹 페이지 ( e.g. '.html' 이나 '.css', '.php' 확장자 파일 i.e. "index.php" 와 같은 파일) request 를 받고 response (응답)하는 process 는

port number 가 22번이다.


"왜 port number 가 22번?" 라고 묻는다면, 특별한 이유는 없다. 그저 일종의 규약일 뿐이다. 초기에 사람들이 모두가 동의하고 따를 수 있는 규약을 만들면서 "웹페이지 문서를 어느 포트에다가 요청하는 걸로 할까?" 하고 이야기를 나누다 결정하였다고 보면 된다. (물론 그 이상의 더 자세한 스토리가 있을 수 있지만 알지 못하고 그다지 신경쓰지 않아도 된다.)



그럼 일단 대충 그렇게 이해했다고 치고,



FTP 에 대해서 알아보자.


FTP 도 프로토콜이다.


프로토콜이 영어라서 어렵게 느껴지는가? 


프로토콜을 번역하면, '규약'이다.


그래. 영어라고 다르게 생각할 필요가 없다. "규약"이라고 이야기하는게 덜 부담 된다면 "규약"이라고 이야기하면 된다.

하지만 "규약"이라는 것이 법률 자문이나 다른 분야에서도 쓰기 때문에 왠만해선 "프로토콜"이라는 표현에 익숙해지기 바란다. 

적어도 그 분야에서 자주 쓰이는 용어를 익히는 것이 올바른 행동이기 때문이다.


어쩄든,


FTP 파일은 컴퓨터 초기 시절, MS-DOS 시절. 그래 마우스가 없고 







컴퓨터를 키면, 이 모습만 뜨던 시절 만들어진 "프로토콜"이다. 


왜?


음 컴퓨터와 컴퓨터 간에 파일을 전송할 필요가 있었고..

혹시나 역사적 측면을 좋아할까 싶어서 설명하자면 처음 컴퓨터는 군사 작전을 위해 만들어졌음으로 사단과 사단 사이에, 통신하면서 파일(기밀 문서?)을 나누거나 하는 행위를 위해 만들어졌을 것이다. 


어쨌든, 


보통 아래 FileZilla 라는 프로그램을 써서 FTP 접속을 한다. 






물론, cmd 창으로도 이 프로그램이 하는 일들을 다 할 수 있다.


그럼 왜 굳이 이걸 쓰냐고?

그건, MS-DOS 로도 지금 우리가 윈도우로 하는 모든 작업들 다 할 수 있는데 뭐하러 굳이 Window 7, Window 8 쓰냐고 묻는 것과 별반 다를 바 없다.

(물론 난이도는 차이가 엄청나겠지만)


그냥 좀 더 직관적으로 이해할 수 있도록 그리고 좀 더 쉽게 파일 전송을 할 수 있도록 i.e. 생소한 명령어를 외우지 않아도 되도록 이다.



자 그럼 이제 HTTP 와 FTP 의 차이에 대해서 보자. 


HTTP is used to view websites while FTP is used to access and transfer files.


2. The common HTTP client is the browser while FTP can be accessed via the command line or a graphical client of its own.


3. Most people use HTTP while only a few use FTP, mostly people who maintain websites.


4. Downloading files can either be via HTTP or FTP.



실질적으로 파일을 보내고 받고 하는 것에 대한 "프로토콜"이라는 전체적인 관점에서는 크게 다른 점이 없다.


너무나 중요하고 큰 컨셉이라서 "뭔가 더 복잡한 차이점들이 존재할꺼야"라는 가정이 붙어서 그런 걸 수도 있지만 사실은 간단하게 생각해도 충분하다.


즉, HTTP 는 웹 페이지를 요청하고 보내고 받을 때 사용하는 프로토콜. FTP 는 그 외에 파일을 보내기 위해 존재하는 프로토콜이다.



어차피 똑같은 일 하는 것 왜 하나로 사용하지 않냐고?


똑같은 일 하는데 2 개가 존재하니 그래서 뭔가 중대한 차이점이 있지 않을까 하는 것이라고?


그런 의아함이라면 이러한 맥락이 도움이 될 수도 있겠다.


FTP 가 HTTP 이전에 개발이 되었다.


이후, 팀 버너스 리가 월드와이드 웹을 만들면서 인터넷이라는 게 만들어졌고, 브라우저를 통해 웹페이지를 요청하고 보내고 받는 행위가 잦아지기 시작했다. 


웹의 폭발적인 성장으로 인하여 각자가 원하는대로 마구잡이로 정의하는 포맷이 아니라 모두의 편의를 위해 모두가 동일하게 사용하는 포맷을 정하자! 라고 


해서 HTTP 라는 프로토콜이 생겨난 것이다.


FTP는 이미 존재 -> 웹의 폭발적 발전 -> HTTP 프로토콜 생성 -> 이제 FTP와 HTTP 둘 다 존재 (현재) -> ?


그래서 우리는 저 시점에 있는 것이다.


그 이후에 어떻게 될 지는 아직 확정된 사항은 없다.


FTP 가 곧 다른 프로토콜들에 의해 대체될 것이다 라는 의견이 있고, 이미 대체하고 있다는 이야기도 있지만, 그건 좀 더 지켜봐야 알 수 있을 것 같다. 








WRITTEN BY
서상호

,