웹은 어떻게 동작할까?

Shin Yeongjae·2020년 7월 3일
0

Wecode

목록 보기
10/26

웹 페이지가 브라우저 상에서 나타나기 위해서는 몇 가지 단계를 거친다. 사용자가 브라우저 상에서 URL을 입력하여 서버로 요청을 보내고 서버가 해당 URL과 일치하는 IP 주소를 찾아내 다시 브라우저로 응답을 보낸다. 그러면 최종적으로 브라우저 상에서 웹 페이지가 나타나는 것이다. 웹의 동작을 알기위해서는 몇 가지 용어에 대해서 학습이 필요하다.

1. 호스팅

웹 페이지를 인터넷에 띄운다는 것은 홈페이지의 구성 파일들(HTML, CSS, JS)이 인터넷에 항상 연결되고, 절대 꺼지지 않는 호스트 컴퓨터(웹 서버)에 저장되어 있다가 사용자의 요청이 오면 언제든지 응답하는 것이다.
예) AWS EC2/S3, Cafe24 호스팅센터 등

2. IP 주소

IP(Internet Protocol)는 인터넷으로 통신하는 각 device(컴퓨터, 핸드폰 등)에 부여된 고유한 값이다. 스마트폰이나 노트북부터 대규모 소매 웹 사이트의 콘텐츠를 서비스하는 서버에 이르기까지 인터넷 상의 모든 컴퓨터는 숫자를 사용하여 서로를 찾고 통신하며, 이러한 숫자를 IP 주소라고 한다.

IPv4 주소의 구성


IP 주소는 .으로 구분된 네 묶음의 숫자로 구성되어 있다. IPv4는 약 43억개의 주소를 가지고 있는데 현재 포화 상태라 새로운 형태를 가진 IPv6이라는 주소도 나온 상태이다. 하지만 우리는 이러한 숫자 형태의 주소를 매번 기억하기는 힘들기 때문에 도메인이라는 것을 사용한다.

3. 도메인

도메인은 문자로 된 고유 주소이다. 위에서 설명했다시피 수많은 IP 주소를 인간이 다 외워서 접속할 수 없기 때문에 상대적으로 기억하기 쉬운 도메인을 사용한다.
예)www.google.com

도메인의 구성

https://site.com:8000/user?id=123#settings

  1. https: 프로토콜이라고 하는데 프로토콜은 브라우저와 서버 간의 통신 환경과 그 내용을 말한다. 가장 보편적인 프로토콜은 하이퍼텍스트 문서(HTML)을 다루기 위해 만들어진 HTTPS와 HTTP를 말한다. 그러나 파일 전송을 위한 FTP(File Transfer Protocol), 이메일을 주고 받기 위한 POP(Post Office Protocol)같은 프로토콜도 있다.
  2. site.com: 도메인 네임은 사람이 읽을 수 있는 서버의 주소를 말한다. 위에서도 설명했지만 실제로 모든 서버들은 IP 주소를 가지고 있다. 하지만 IP 주소는 기억하기 쉽지 않기 때문에 도메인 네임을 사용한다. 사용자로부터 요청을 받으면 도메인 네임은 서버의 실제 IP 주소로 바꿔주는 기능을 하는 DNS(Domain Name Servers)로 보내진다.
  3. :8000: 포트라고 하는데 포트는 특정 서비스를 노출시키기 위해 서버에 의해 사용된다. 하나의 서버가 웹페이지 호스팅이나 파일 전송 등 여러가지를 다루게 되는데, 각 서비스들은 서로 다른 포트를 사용한다. 비록 웹에서 포트 번호는 거의 볼 수 없지만 포트 번호는 항상 필요하다. 포트 번호는 프로토콜을 보면 기본값을 예상해 볼 수 있다. 예):80포트는 HTTP 프로토콜에서 사용/:443포트는 HTTPS에서 사용
  4. user: 경로라고 하는데 경로는 서버의 리소스를 가리키는 문자열이다. 서버나 클라이언트는 주어진 경로에서 어떻게 요청을 다룰지 결정한다. 예를들면, HTML 페이지를 보여주거나 다른 서버와 통신하여 원시 자료 (raw data)로 응답할 수 있다.
  5. ?id=123: 쿼리스트링 또는 쿼리파라미터라고 하는데 쿼리 파라미터는 경로에 대한 인자(arguments)라고 한다. 쿼리 파라미터는 key=value의 형태로 경로에 ?와 함께 저장된다. 그 다음에 오는 파라미터는 &로 묶는다. ?userId=123&type=reader의 형태이다. 서버는 요청에 대한 추가 정보를 얻기 위해 쿼리스트링에 접근하고 파싱할 수 있다.
  6. #settings: 프래그먼트라고 하는데 프래그먼트는 페이지의 섹션에 대한 참조(reference)를 말한다. 앵커 또는 해시라고도 한다.

포트 전까지를 베이스 URL이라고 부른다.

4. DNS

DNS는 사람이 읽을 수 있는 도메인(예: www.google.com)을 기계가 읽을 수 있는 IP주소로 변환한다. DNS는 이름과 숫자 간의 매핑을 관리하여 마치 전화번호부와 같은 기능을 한다. DNS 서버는 이름에 대한 요청을 IP 주소로 변환하여 최종 사용자가 도메인 이름을 웹 브라우저에 입력할 때 해당 사용자를 어떤 서버에 연결할 것인지를 제어한다. 이 요청을 쿼리라고 한다.
예)Amazon Route 53, Cafe24 도메인관리, 가비아 네임서버 관리

❗️ DNS서버란 도메인과 서버를 연결해주는 중간 서버로, 도메인 이름을 인터넷상의 주소(IP주소)로 변환시켜 원하는 컴퓨터를 찾아갈 수 있도록 함.


최종적으로 웹 페이지가 브라우저 상에서 나타나는 플로우를 보자면

URL 입력 ➡️ DNS Server ➡️ IP주소 반환 ➡️ IP주소 요청 ➡️ 호스트 서버 ➡️ 웹 페이지 출력

순으로 작동한다고 보면 된다.

profile
문과생의 개발자 도전기

0개의 댓글