🚀 94sssh
Published on

2024.08.30

[네트워크 원리] - 04. 웹사이트의 동작 원리

웹사이트의 동작 원리

웹사이트는 어떻게 생겼을까?

웹사이트는 웹서버 애플리케이션이 공개하는 다양한 웹페이지의 집합

  1. 웹브라우저에서 웹서버 애플리케이션에 파일 전송 요청을 보냄
  2. 웹서버 애플리케이션은 요청받은 파일을 응답으로 돌려보냄
  3. 웹브라우저에서 수신한 파일을 표시해 웹사이트를 볼 수 있게 됨

웹페이지 파일 전송에 이용하는 TCP/IP의 애플리케이션층 프로토콜은 HTTP이다. 암호화하는 경우는 HTTPS를 이용한다.

웹페이지를 만든다

HTML은 하이퍼 텍스트 마크업 랭귀지로 복수의 문서를 연결해 서로 참조할 수 있는 문서의 구조를 명확히 표현하기 위한 언어이다.
HTML 태그를 이용해 문서 구조나 링크, 문자 크기나 폰트 등의 외관을 지정할 수 있다.
시작 태그와 종료 태그로 요소를 감싸는 것을 마크업이라고 한다.

웹페이지를 보기 좋게 꾸민다

폰트 등 문서의 전체적인 디자인을 스타일 시트로 따로 정의하는 것이 일반적
CSS(Cascding Style Sheets)는 HTML 파일 안에 기술할 수도 있지만, 대게 별도로 스타일 시트 파일을 작성한다.

웹사이트의 주소

<스킴>://<호스트명>/<경로명>

전송받고 싶은 웹페이지를 지정하는 것이 웹사이트의 주소
웹사이트의 주소는 주로 "http://"로 시작되는 문자열로, URL이라고 불린다. (정식으로는 URI다)
맨 앞의 http는 스킴이라고 해서, 웹브라우저가 웹서버의 데이터에 접속하기 위한 프로토콜을 나타낸다.
콜론 뒤에는 파일이 있는 장소를 나타내고, //는 그 뒤로 이어지는 부분이 호스트명임을 나타낸다.
호스트명 뒷부분이 웹서버 어디에 파일이 있는지를 나타내는 경로이다.

웹사이트의 파일을 요청한다

HTML 파일을 전송하기 위해 HTTP(Hyper Text Transfer Protocol)를 이용한다. 하이퍼텍스트를 전송하는 프로토콜이다. HTTP 파일 전송은 HTTP 리퀘스트와 HTTP 리스폰스를 주고받으며 이뤄진다.

HTTP 리퀘스트는 리퀘스트 라인, 메시지 헤더 , 엔티티 바디 세 부분으로 나뉜다.

주요 HTTP 메서드

메소드의미
GETURL로 지정한 데이터를 가져온다
HEADURI로 지정한 데이터의 헤더만 가져온다
POST서버에 데이터를 보낸다
PUT서버에 파일을 보낸다
DELETE서버의 파일을 삭제하도록 요청한다
CONNECT프록시 서버를 경유해 통신한다

웹사이트의 파일을 전송한다

HTTP 리퀘스트에 대한 응답으로 HTTP 리스폰스를 리턴한다.
리스폰스 라인은 버전, 상태 코드, 설명문으로 나뉜다.
설명문은 상태 코드의 의미를 간단히 보여주는 텍스트이다.

주요 HTTP 상태 코드

메소드의미
1XX정보. 추가 정보가 있음을 전달한다
2XX성공. 서버가 요청을 처리했음을 전달한다
3XX리다이렉트. 다른 URI로 다시 리퀘스트하도록 요청한다
4XX클라이언트 에러. 요청에 문제가 있어 처리할 수 없음을 전달한다
5XX서버 에러. 서버 쪽에 문제가 있어 처리할 수 없음을 전달한다

웹사이트 접속 기록을 기억해 둔다

HTTP 쿠키는 웹서버 애플리케이션이 웹브라우저에 특정 정보를 저장해 두는 기술이다.
웹서버 애플리케이션이 웹브라우저의 요청에 대한 HTTP 리스폰스에 쿠키를 담아 보내면 웹브라우저가 수신한 쿠키를 저장한다.
쿠키를 이용해 웹페이지 내용을 커스터마이징할 수 있다.

웹사이트 접속을 대행한다

프록시 서버: 웹 접속을 대신하는 서버

프록시 서버를 경유하는 웹 접속은 아래와 같이 진행된다.

  1. 클라이언트 PC의 웹브라우저에서 URL을 입력하면, 프록시 서버로 HTTP 리퀘스트를 보낸다.
  2. 프록시 서버에서 URL로 지정된 웹서버에 HTTP 리퀘스트를 보낸다.
  3. 웹서버에서 프록시 서버로 HTTP 리스폰스를 보낸다.
  4. 프록시 서버에서 클라이언트 PC의 웹브라우저로 HTTP 리스폰스를 보낸다.

클라이언트 PC의 웹브라우저에서 프록시 서버에 접속할 때에는 TCP 포트 번호 8080을 사용하는 경우가 많다.

직원이 보는 웹사이트를 확인한다

기업 네트워크 관리자 입장에서 프록시 서버를 도입하는 두 가지 목적

  • 클라이언트 PC의 웹브라우저에서 어떤 웹사이트에 접속하는지 확인하는 것
  • URL 필터링 또는 웹 필터링을 통해 특정 웹사이트에 접속할 수 없게 제한하는 것

웹브라우저는 웹서핑만 하는 게 아니다

웹브라우저를 유저 인터페이스로 이용하는 애플리케이션으로 사용하는 것이 웹 애플리케이션이다.
클라이언트 PC에 전용 애플리케이션의 설치나 업데이트 등의 작업이 필요 없어지는 장점이 있다.
구글 캘린더, 인터넷 뱅킹, 온라인 쇼핑 등이 있다.

웹사이트를 볼 때의 준비

웹사이트를 보기 위해 웹브라우저가 필요하다. 웹브라우저에는 특별한 설정이 필요 없다.
웹서버에는 웹서버 애플리케이션이 필요하다. Apache나 Microsoft IIS 등이 있다.

웹사이트를 보는 흐름

웹사이트를 볼 때는 DNS의 이름해석과 ARP의 주소해석 기능이 동작한다.

  1. 먼저 웹브라우저에서 URL을 입력하면,
  2. URL에 포함된 웹서버의 호스트명을 DNS 서버에 질의해 웹서버의 IP 주소를 해석한다.
  3. 그 IP 주소를 지정해 웹브라우저와 웹서버 애플리케이션 간에 TCP 커넥션을 맺는다.
  4. TCP 커넥션 확립 후 HTTP 리퀘스트와 HTTP 리스폰스를 주고받는다.

TCP에서 복수로 분할된 웹페이지의 파일을 조립하여 웹브라우저에 내용을 표시하면, 사용자는 웹사이트를 볼 수 있다.