TIL. 웹이 동작하는 원리

Teasan·2021년 1월 8일
0

WEB

목록 보기
1/1
post-thumbnail

웹은 어떻게 동작할까?


사용자가 브라우저를 통해서 서버에 웹사이트를 요청을 하면 서버가 브라우저로 응답을 해주는 방식이다. 요청과 응답의 방식인 것이다.

요청과 응답은 어떻게 하는 걸까?


사용자가 브라우저에 www.wecode.co.kr URL을 입력함으로서 해당하는 wecode 서버에 요청을 하게 된다. 이것은 마치 백엔드와 프론트 사이에서 API를 이용해서 요청하고 응답하는 통신을 하는 것처럼 하나의 HTTP 통신 요청인 것이다. 그래서 이 요청에 대해서 wecode 서버가 브라우저로 응답을 하면 컨텐츠가 나오게 되는 것이다.

Hosting (호스팅, Web hosting service)

인터넷에 띄운다는 것은 홈페이지의 구성파일들이(html, css, js) 인터넷에 항상 연결되고 절대 꺼지지 않는 호스트 컴퓨터*(웹서버)에 저장되어 있다가 사용자의 요청이 오면 언제든지 응답하는 것을 말한다.
즉, 서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대해주는 서비스를 일컫는다.
예시) AWS ec2/S3, cafe24 호스팅센터 등

사용자가 URL을 입력했을 때 어떻게 브라우저는 어떤 컴퓨터가 우리가 원하는 파일을 갖고 있는 호스트 서버 컴퓨터인지 알고 파일을 응답받을 수 있을까? 수 많은 호스트 서버가 있을 텐데?

이때 사용하는 것이 바로 IP 주소이다.

IP 주소(인터넷 프로토콜)

IP 주소는 인터넷으로 통신하는 각 device(컴퓨터, 총신장비)에 부여된 고유한 값이다. 인터넷이 통신될 때 그 device의 고유한 IP 주소값이 할당되는 것이다. 각기 다른 장비에서도 인터넷이 연결되어 있다면, 각각의 고유한 IP 주소 값이 할당된다.
인터넷 상의 모든 컴퓨터는 숫자를 사용하여 서로를 찾고 통신하며, 이러한 고유한 숫자 값을 IP 주소라고 한다.

IP 구조

컴퓨터가 읽을 수 있는 언어인 숫자 0과 1로 표시되어 있고, 약 43억개의 주소 조합이 나올 수 있다. (IPv4 방식이며, 지금은 거의 다 찼다고 한다.)

그렇다면, 홈페이지에 접속할 때마다 IP 주소를 입력해야 할까?

Domain

서버에 부여된 고유한 값인 IP 주소를 하나하나 외울 수 없기 때문에, 사용자가 쉽게 기억하고 사용할 수 있도록 문자(string)로 된 고유한 주소를 사용한다. 이것이 Domain 이다.

  • protocol
    • 컴퓨터가 정보를 주고 받을 때 원활하게 하기 위한 일종의 통신 규약이다.
    • http는 웹, https는 보안을 의미한다.
  • subdomain
    • domain의 보조적인 기능을 함
    • 다중의 사이트를 만들고 연결을 하고자 할 때, 독립적으로 접속을 할 때마다 도움을 준다.
    • 서브 도메인이 없을 때는 생략 가능하다.
  • domain
    • 이름
  • top level domain
    • TLD라고 쓰이며, 주로 단체가 회사인지 정부인지 등등을 결정하며, 국가를 구분하는 약어들로 쓰인다.
  • port
    • 로컬에서 개발할 때 사용
    • 기본 port는 80이며, 생략 가능하다.
  • path
    • 해당 파일이 서버의 어디에 있는지 나타내는 경로를 의미.
    • 최근에는 실제 경로를 나타내지 않고 추상화해서 나타낸다.
  • query string(a.k.a parameter)
    • 제품의 카테고리라던지 제품의 아이디 같은 것을 말하며 백과 통신하며 주고 받을 때 사용한다.
  • 주로 protocol부터 top level domain 까지를 base URL 이라고 부른다.

그렇다면, 사용자가 Domain 주소를 입력할 때 해당 IP 주소로 어떻게 연결될까? 바로 DNS를 통해서 연결된다.

DNS

DNS 또는 Domain Name Ststem 은 사람이 읽을 수 있는 Doamin Name(예: www.wecode.com)을 머신이 읽을 수 있는 IP주소(예: 192.0.2.44)로 매핑해서 변환해준다. 이름과 숫자 간의 매핑을 관리하여 마치 전화번호부와 같은 기능을 한다.

DNS 서버가 Domain 주소로 IP 주소를 찾으려고 요청하는 것을 쿼리라고 일컬으며, 즉 DNS 서버는 도메인과 서버를 연결해주는 중간 서버라고 할 수 있다.

웹이 동작하는 원리를 이해하기 위해서 먼 길을 돌아왔다!
그렇다면 배운 것을 토대로 다시 한번 정리해보자.

(그래서) 웹이 동작하는 원리는 무엇인가?

사용자가 브라우저에 URL을 입력했을 때 응답을 받는 과정은 다음과 같이 설명할 수 있을 것이다.
1. 사용자가 브라우저를 열고 URL을 입력하면 DNS 서버를 거쳐서 고유한 IP 주소를 받고
2. 사용자의 브라우저는 이 고유한 IP 주소를 가지고 있다가
3. 사용자가 URL 주소를 입력할 때마다 IP 주소를 가지고 타겟 서버로 호출을 한 뒤,
4. 살펴보고자 했던 웹사이트의 HTML/CSS/JS 파일을 응답으로 받을 것이다.

✔️ 이것이 사용자가 브라우저에 URL을 입력했을 때 어떻게 웹이 동작하는지에 대한 최소한의 설명이다.

profile
일단 공부가 '적성'에 맞는 개발자. 근성있습니다.

0개의 댓글