웹은 어떤 기술로 구성되어 있는가?
웹은 HTTP라는 약속을 사용한 통신으로 이루어져있다.
HTTP(HyperText Transfer Protocol)는 클라이언트(= 서버에 의뢰를 하는 웹 브라우저 등을 말함)에서 서버까지 일련의 흐름을 결정하고 있는 프로토콜(= 약속, 규칙)이다.
웹 페이지가 보여지는 이유는 웹 브라우저의 주소 입력란에 지정된 URL에 의지해서 웹 서버로부터 리소스라고 불리는 파일 등의 정보를 얻어 오기 때문이다.
HTTP 등장 배경
멀리 떨어져 있는 동료 연구자와 지식을 공용하기 위해 CERN(유럽 입자 물리학 연구소)의 팀 버너스 리 박사에 의해 고안되었으며, 최초로 고안된 것은 여러 문서를 상호간에 관련 짓는 하이퍼텍스트(HyperText)에 의해 상호간에 참조할 수 있는 WWW(World Wide Web)의 기본 개념이 되는 것이었다.
WWW를 구성하는 기술로서 문서 기술 언어로는 SGML(Standard Generalized Markup Language)을 베이스로 한 HTML(HyperText Markup Language), 문서 전송 프로토콜로는 HTTP, 문서의 주소를 지정하는 방법으로 URL(Uniform Resource Locator) 등 세가지가 제안되었다.
1989년
- 3월 탄생하였다.
1990년
- 등장!
- 이 당시 정식 사양서가 아니었다.
- HTTP 1.0 이전이라는 의미에서 HTTP/0.9로 불렸다.
1996년
- 5월 정식 사양으로 공개 되었다.
- 이 때 HTTP/1.0으로 RFC1945가 발행되었다.
- 초기의 사양이지만 현재에도 아직 많은 서버상에서 현역으로 가동되고 있는 프로토콜 사양이다.
1997년
- 1월에 HTTP/1.1버전이 공개되었다. (현재 가장 많이 사용되는 버전이다.)
- 그 당시의 사양은 RFC2068이지만 개정판으로 발행된 RFC2616이 최신 버전이다.
웹의 성장 배경
1990년
- 11월 세계 최초의 웹 서버와 웹 브라우저가 개발되었다. (대한민국은 그로부터 3년 뒤에 개발 됨.)
- HTML1.0 애매한 부분이 많았기 때문에 초안인 상태로 폐기되었다.
1993년
- 1월 NCSA(National Center for Supercomputing Applications, 미국 슈퍼 컴퓨터 응용 연구소)에서 현재 사용하는 웹 브라우저의 선조라고 말할 수 있는 모자이크(Mosaic) 개발되었다.
- HTML의 이미지 표시를 인라인으로 처리하는 등 세련된 그래픽을 사용하여 세계에 널리 퍼지게 되었다.
1994년
- 12월 넷스케이프(Netscape) 사에서 넷스케이프 내비게이터(Netscape Navigator) 1.0을 출시했다.
1995년
- 마이크로 소프트(Microsoft) 사에서 인터넷 익스플로러(Internet Explorer) 1.0과 2.0 출시했다.
- 웹 서버 표준의 하나인 아파치(Apache)도 Apache 0.2로 등장했다.
- HTML 2.0이 발행되었다.
- 이 해에는 마이크로소프트사와 넷스케이프사에 의해서 브라우저 경쟁이 과열되어 갔다. 이 두 회사는 독자적으로 HTML을 확장해나갔기 때문에 지금도 HTML 콘텐츠를 만드는 유저들을 곤란하게 만들고 있다.
- 브라우저 벤더끼리 경쟁하면서 그 당시 추천되었던 여러 웹 표준화를 모조리 무시해왔으며, 새로운 기능에 대한 문서도 없는 상황이 종종 있었다.
2000년
- 넷스케이프사의 쇠퇴와 함께 결말이 났다.
2004년
- 파이어폭스(Fire Fox) 출시와 함께 제 2차 브라우저 전쟁에 돌입하였다.
- 인터넷 익스플로러는 버전 6에서 7이 등장하기까지 5년이 걸렸다. 그 뒤로 8, 9, 10 버전을 연달아 출시 했다.
- 또한 크롬(Chrome)과 오페라(Opera), 사파리(Safari)와 같은 브라우저도 점유율을 늘려가고 있다.
TCP/IP
인터넷을 포함하여 일반적으로 사용하고 있는 네트워크는 TCP/IP라는 프로토콜에서 움직이고 있고, HTTP는 그 중 하나이다.
인터넷과 관련된 프로토콜들을 모은 것을 TCP/IP라고 부른다.
TCP/IP는 애플리케이션 계층, 트랜스포트 계층, 네트워크 계층, 링크계층으로 나뉘어진다.
애플리케이션 계층
유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정하고 있다.
FTP, DNS, HTTP도 이 계층에 포함된다.
트랜스포트 계층
애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공한다.
네트워크 계층 (인터넷 계층)
네트워크 상에서 패킷의 이동을 다룬다.
링크계층 (데이터 링크 계층, 네트워크 인터페이스 계층)
네트워크에 접속하는 하드웨어적인 면을 다룬다.
TCP/IP로 통신을 할 때 계층을 순서대로 거쳐 상대와 통신을 한다.
송신하는 측은 애플리케이션 계층에서부터 내려가고, 수신하는 측은 애플리케이션 계층으로 올라간다.
수신측 서버는 링크 계층에서 데이터를 받아들여 순서대로 위의 계층에 전달하여 애플리케이션 계층까지 도달한다. 애플리케이션 계층에 도달하게 되면 클라이언트가 발신했던 HTTP 리퀘스트 내용을 수신할 수 있다.
송신측은 각 계층을 거칠 때는 반드시 해당 계층에 필요한 정보(헤더)를 추가하고, 수신 측에서는 각 계층을 거칠 때마다 해당 계층마다 사용한 헤더를 삭제한다.
참고 :
그림으로 배우는 HTTP & Network Basic
댓글