NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Web HTTP란?

    페이지 정보

    본문

    안녕하세요. 소심비형입니다. 웹을 떠난지가 어언~ 7년정도 되어가는군요-_-; 정말 세월이 야속하다는 말이 실감납니다. 싸이월드와 티스토리등등... 인터페이스 개발을 마지막으로 응용 프로그램으로 넘어왔는데요. 그동안 웹 환경도 정말 많은 변화가 있었습니다. 

     

    학원에서 ASP.NET 강의를 하다보면 MVC나 MVVM에 대한 요구도 많더라구요. 이젠 웹폼을 버려야 할 시기가 다가온 마당에 ASP.NET에 대한 이야기를 풀어간다는게 이상할수도 있습니다. 하지만, 언제나 기초가 중요하기도 하고~ 아직도 레거시 시스템에서 많이 사용하고 있기 때문입니다. 어차피 MVC(Model, View, Controller)관련 강좌도 있으니 비교해 보시면서 ASP.NET은 가볍게 보고 넘어가셔도 될거 같습니다.

     

    시작하기에 앞서...

    우선 웹이라는 환경에 대한 이해가 있어야 하기에 가장 기초가 되는 HTTP에 대해서 알아보죠.

    HTTP(HyperText Transfer Protocol)HTML(HyperText Markup Language)문서를 전송하기 위한 규약입니다. 보통 프로토콜을 규약이라고 번역하고 있는데요. 일종의 약속이라고 보시면 됩니다. 우리의 언어가 바로 이 프로토콜인거죠. 슈퍼맨이 "치맥 먹으러 가자~"라고 했을 때 상대방인 배트맨도 "치맥"을 알아 들을 수 있어야 합니다. 여기서 "치맥"이 바로 HTML이 됩니다. 이 약속된 문서를 교환하기 위한 규약이 HTTP입니다. 

     

    WWW(World Wide Web)의 수많은 네트워크 안에서 서버와 클라이언트간에 HTML로 이루어진 문서를 교환할 수 있도록 하는 방법을 컴퓨터 학자인 Tim Berners-Lee가 1989년에 처음으로 공개하였습니다. 우리가 흔히 사용하는 URL과 HTML도 이분이 최초로 만들었죠. 그리고 현재 웹 표준 기구인 W3C(World Wide Web Consortium)를 창립하신 분도 이분입니다. HTTP는 웹에서만 사용하는 프로토콜로 TCP/IP 기반으로 서버와 클라이언트간의 요청(Request)과 응답(Response)을 통해 HTML문서를 전달합니다.

    ※ 1989년이면... 배이직이랑 코볼, 포트란을 배우던 시기인거 같네요-_-; 정말 배웠었나 하는 생각이 들 정도로 하나도 기억이 안납니다.

     

    아직 웹을 개발하기 위한 아무런 지식도 없기 때문에 아래 내용이 이해가 안갈수도 있습니다. 특히 응용 프로그램 분야에 계셨던 분이라면 더 이해하기 어려울수도 있습니다. 서버는 WAS(Web Application Server)라는 환경에서 요청에 대한 문서를 내려보냅니다. 클라이언트(Internet Explorer, FireFox, Chrome, Safari...)는 이 문서를 해독하여 사용자에게 보여지게 됩니다. 웹 브라우저라는 플랫폼에 종속적이기 때문에 응용 프로그램보다 제약이 많습니다. 동의하지 않으시는 분들도 계실겁니다-_-; 초고속 네트워크망과 하드웨어의 발전으로 웹에서도 많은 일들을 처리할 수 있기 때문이죠. 하지만, 그래도 한계는 분명 존재합니다.

     

    아래는 클라이언트의 요청과 서버의 응답을 그림으로 설명하고 있습니다.

    4zsptYc.png

     

     

    초기 HTTP는 Open, Close, Operation기능을 수행했습니다. 위의 그림처럼 요청에 대한 응답을 받으면 연결이 자동으로 끊어집니다. 이런 비지속성 연결방식으로 인해 성능의 저하와 여러가지 많은 문제점들을 가지고 있었죠. 또한, 한번에 가져올 수 있는 데이타의 양이 정해져 있기 때문에 대용량의 파일은 HTTP로 전송할 수 없었습니다. 그래서 FTP(File Transfer Protocol)라는 프로토콜을 사용하고 있죠. 아무튼, 요청에 대한 메소드는 Get, Post, Head가 존재했었습니다. 지금에 와서는 지속적인 연결도 가능하고 요청과 응답이 멀티로 처리가 가능합니다. 서버의 캐시 기능도 많은 향상이 있었구요.

     

    아래는 HTTP 1.1과 HTTP 2의 변경된 내용을 설명하고 있습니다.

    meH9Lco.png

     

     

    위 그림의 우측에 있는 3, 4, 5에 대한 방식을 Pipelining(파이프라이닝)이라 부릅니다. 요청에 대한 응답이 도착하지 않은 상태에서 다시 요청할 수 있으며, 서버는 수신한 순서대로 클라이언트에 응답하게 됩니다. 이렇게 하면 패킷과 트래픽이 감소하며 네트워크 비용을 절약할 수 있게 됩니다. 위 그림의 좌측과 우측을 비교해보면 알 수 있습니다.

     

    처음 웹을 하던 당시에는 이쁘게 사이트를 구축하고 싶은 욕구가 대단했었죠. 하지만, 부족한 자원을 이용하여 멋진 효과를 나타내기는 쉽지 않은 환경이었습니다. 그래서 이런저런 기술(꼼수)들이 개발자들 사이에서 공유되고 퍼져나가기 시작했습니다. 이때만해도 IE 5에만 화면이 잘 나오면 되던 시기였습니다. 그러하다 웹 2.0이 나오면서 브라우저도 춘추전국 시대가 됩니다. 사실 그전부터 문제였지만요-_-; 다음에 진행할 HTML에 대해서 알아보면서 좀 더 이야기를 해보도록 하겠습니다.

     

    한참 미친듯이 채팅에 빠져 지냈던 하이텔입니다. 천리안, 유니텔도 있었구요.

    XkOFRBO.jpg

     

     

    처음으로 이메일을 가지게 해준 드림위즈입니다-_-;

    G0lRJrJ.jpg

     

     

    이밖에도 네띠앙이나 라이코스, 심마니, 프리첼등등 상당히 많이 있었죠. 코리아닷컴도 있었구요. 이당시에는 다 하나씩 이메일을 만들어서 가지고 있었던거 같네요. 이중에서 프리첼이나 라이코스 정도가 유명했고, 나머지는 어렴풋이 기억만 남아 있군요. 처음 허큘리스 모니터에 IBM XT 286 컴퓨터 샀던 때가 아련하게 떠오릅니다.

    참 세월이 야속해~

     

    다음 시간에...

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.