본문 바로가기
Web

[네트워크] 웹의 동작 원리(프로토콜의 이해)

by jaee_ 2021. 7. 29.
SI회사에 들어가 개발자로 일한지 7개월에 접어들었다. 하지만 아직도 회의에 들어가게되면 모르는 용어들이 많다. 기본지식이 부족하기 때문이라고 생각한다. 조금 늦은감이 있지만 지금부터 천천히 꾸준히 기초부터 채워 나가려 한다. 

인터넷이란?

인터넷(Internet)이란 여러 통신망을 하나로 연결하는 컴퓨터 통신망(네트워크)을 의미한다. 현재는 전 세계 컴퓨터를 하나로 연결하는 의미로 쓰인다. 이러한 인터넷은 클라이언트서버로 구성되며, TCP/IP라는 기본 프로토콜을 통해 제공되고 있다. 

 

웹(Web)이란?

World Wide Web(Web)이란 인터넷 상에 연결된 사용자들이 서로의 정보를 공유할 수 있는 무형의 네트워크 공간을 의미한다.

 

웹의 구성

웹에서는 HTML 언어를 사용하여 작성된 하이퍼텍스트 문서를 웹페이지라고 부른다.

이러한 웹 페이지들의 집합을 웹 사이트라고 부른다.

웹의 기능은 크게 세가지로 분류되고 있다. 

1. URL - 웹 자원의 통일된 위치 지정 방식

2. HTTP - 자원을 검색하고 접근 가능한 프로토콜

3. HTML - 자원들 사이를 쉽게 항해 가능한 언어 

 

프로토콜(Protocol)이란?

프로토콜이란 컴퓨터끼리 정보를 주고받기 위한 일종의 규칙이나 약속을 의미한다. 한국인과 프랑스인이 있다고 치자 한국인은 불어를 할 줄 모르고 프랑스인은 한국어를 할 줄 모른다. 이 둘이 대화를 하기 위해선 둘 다 알아들을 수 있는 언어인 영어로 대화하기로 약속한다. 이때 둘이 약속한 영어가 프로토콜의 의미를 가진다. 이처럼 컴퓨터 사이의 통신에서 정보를 교환하기 위해 미리 만들어 둔 네트워크 통신 규약을 프로토콜이라고 한다.

대표적인 프로토콜은 인터넷에서 사용되는 TCP(Transmission Control Protocol)와 IP(Internet Protocol), 웹에서 사용되는 HTTP(HyperText Transfer Protocol), 파일을 주고받을 때 사용되는 FTP(File Trasfer Protocol) 등이 있다. 

 

IP주소(Internet Protocol Address)

인터넷 상에서 수많은 컴퓨터와 서버들이 무수히 많이 연결되어 있다. 이때 컴퓨터들이 인터넷 상에서 서로를 인식하기 위해 지정받은 식별용 번호가 바로 IP주소이다.

 

도메인 네임(Domain Name)

IP주소는 십진수 네 개로 구성되기 때문에 외우기가 굉장히 어렵다. 때문에 사람이 기억하기 쉬운 문자 형태로 표현한 주소를 도메인 네임(Domain Name)이라고 한다. 예를들면 'daum.net' 처럼. 

 

도메인 네임 시스템(Domain Name System, DNS)

도메인 네임은 사람이 외우기 쉽게 만든 주소일 뿐이지 컴퓨터는 IP로 해석을 해줘야 알아듣는다. 이때 사용할 수 있도록 도메인 네임과 거기에 해당하는 실제 IP 주소를 한 쌍으로 저장하고 있는 데이터베이스를 DNS라고 부르며, 이 변환 과정은 네트워크에서 자동으로 수행된다.  

우리가 URL(Uniform Resourse Locator)을 통해 주소를 입력하면 도메인 네임 부분을 DNS(Domain Name System)에서 검색한다. 

 

추가적인 정보를 적자면, 물리적인 하나의 컴퓨터는 여러개의 서버가 동작할 수 있고, 각각의 서버는 포트라는 값으로 구분된다. 그 중 HTTP는 80번 포트를 가진다. 포트는 네트워크 서비스나 특정프로세스를 식별하는 논리 단위로 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 사용할 때 사용된다. IP주소로 컴퓨터를 찾았다면, 포트번호로 그 컴퓨터 안에서 동작하는 서버 프로그램(서비스) 중 누구에게 데이터를 전달해야 하는지를 구분하기 위해 사용된다. 

일반적인 포트번호는 아래와 같다. 
20 : FTP(data)
21 : FTP(제어)
22 : SSH 
23 : 텔넷 
53 : DNS 
80 : 월드 와이드 웹 HTTP 
119 : NNTP
443 : TLS/SSL 방식의 HTTP

 

웹의 동작 원리

위의 그림은 사용자가 웹 브라우저를 통해 웹 사이트에 접속하여 원하는 웹 페이지를 가져오는 과정을 도식화 한 그림이다.

 

①② 사용자가 웹 브라우저를 통해 찾고 싶은 웹 페이지의 URL 주소를 입력함.

③ 사용자가 입력한 URL 주소 중에서 도메인 네임(domain name) 부분을 DNS 서버에서 검색함.

④ DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달함.

 

⑤⑥ 웹 페이지 URL 정보와 전달받은 IP 주소는 HTTP 프로토콜을 사용하여 HTTP 요청 메시지를 생성함.

이렇게 생성된 HTTP 요청 메시지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소의 컴퓨터로 전송됨.

 

⑦ 이렇게 도착한 HTTP 요청 메시지는 HTTP 프로토콜을 사용하여 웹 페이지 URL 정보로 변환됨.

⑧ 웹 서버는 도착한 웹 페이지 URL 정보에 해당하는 데이터를 검색함.

 

⑨⑩ 검색된 웹 페이지 데이터는 또 다시 HTTP 프로토콜을 사용하여 HTTP 응답 메시지를 생성함.

이렇게 생성된 HTTP 응답 메시지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 원래 컴퓨터로 전송됨.

 

⑪ 도착한 HTTP 응답 메시지는 HTTP 프로토콜을 사용하여 웹 페이지 데이터로 변환됨.

⑫ 변환된 웹 페이지 데이터는 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 됨.

 


출처 : http://tcpschool.com/webbasic/works

댓글