TIL) Web의 기본 동작 원리

Solmii·2020년 6월 5일
0

WEB

목록 보기
3/4
post-thumbnail

wecode에서 web의 기본 동작 원리에 대한 세션을 듣고 까먹기전에 부랴부랴 정리해봅니다!


🌐 How The Web Works?

www.wecode.co.kr 에 접속하면 어떤 일이 일어날까?

사용자가 브라우저에 URL을 치면, 브라우저는 서버에 홈페이지 구성파일을 요청하고 서버는 그 요청에 응답한다.

💁🏻‍♀️ URL?

Uniform Resource Locator (또는 web address) 라고 부른다.
URL은 웹에 게시된 어떤 자원을 찾기 위해서 browsers에 의해 사용되는 메카니즘으로, 웹에서 정해진 유일한 자원의 주소를 나타낸다.
아래에서 설명할 도메인도 이 URL에 포함되어 있다.


Hosting (호스팅, Web hosting service)

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

다시 위의 그림에서, 사용자가 브라우저에 URL을 치면 wecode 호스트 서버(24시간 인터넷에 연결되어 있고 절대 꺼지지 않는 서버)가 갖고있는 HTML, CSS, JS를 사용자의 요청에 따라 보여주는 것이다.

내 노트북, 내 아이패드도 각각 서버가 될 수 있다.
하지만 만약 노트북이나 아이패드를 꺼버린다면, 서버도 꺼지는 것이기 때문에 사용자가 요청해도 응답할 수 없다.
그래서, 보통은 절대 꺼지지 않는 컴퓨터를 대여해서, 거기에 HTML,CSS,JS 등 필요한 구성 파일을 업로드한다.

이렇게 365일 절대 꺼지지 않고 인터넷에 항상 연결되어 있는 컴퓨터의 서버 를 제공하는 서비스를 호스팅 서비스라고 한다.

호스팅 서비스 ex) AWS ec2/S3, cafe24 호스팅센터 등


호스팅 서버의 종류

웹 호스팅

웹 호스팅은 여러 고객이 하나의 서버를 함께 사용하는 형태이다.

하나의 서버를 나누어 쓰기 때문에 저렴하게 이용할 수 있고, 호스팅 업체의 통합 관리를 받기에 편리하지만, 사용할 수 있는 하드웨어가 제한적이라는 단점이 있다.

서버 호스팅

서버 호스팅은 고객이 단독 서버를 사용하는 형태이다.

넓은 하드웨어 공간을 사용할 수 있고, 서버 운영/관리에 대한 직접적인 권한을 가질 수 있다. 또한, 데이터 전송 속도도 매우 빠르다.

하지만 단독으로 서버를 이용하는만큼 비용이 높은 편으로, 대기업이나 대형 포탈 혹은 대형 오픈마켓과 같이 많은 데이터를 사용하는 기업들이 주로 사용한다.

클라우드 서버

서버 호스팅을 가상화한 것으로, 가상 서버를 단독으로 사용할 수 있는 형태이다.
고객이 필요할 때마다 서버 자원을 늘리거나 축소하여 유연하게 서버를 이용할 수 있지만, 하나의 가상 서버에 문제가 생기면 연결된 다른 가상 서버에도 문제가 생길 수 있다는 단점이 있다.

< 출처 : http://blog.wishket.com/호스팅이란-무엇일까-그린클라이언트/ >


🏝 www.wecode.co.kr 라는 주소는 서버가 어딨는지 어떻게 알고 접속하는 걸까?

IP

IP(Internet Protocol) 주소는 Internet으로 통신하는 각 device(컴퓨터, 핸드폰, 인터넷에 연결된 네이게이션 등 통신장비)에 부여된 고유한 값(주소)

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

(같은 인터넷으로 맥북, 아이패드, 아이폰으로 접속하면 각 장비는 모두 다른 IP 주소를 가지게 된다.)

ipv4 방식 (2^32 까지 주소를 제공할 수 있는데 이게 다 차서 지금은 ipv6 방식을 사용한다고...ㄷㄷㄷ)
이게 ipv6 방식! ipv4 방시은 32비트값으로 나타냈는데 ipv6은 128 비트로 나타낸다고 한다..ㄷㄷㄷ


Domain (Domain name)

문자(string)으로 된 고유 주소. 수많은 IP 주소를 사람들이 일일이 외워서 접속할 수 없기 때문에 대부분의 경우에는 도메인 주소를 구입해서 사용한다.
(숫자 주소에 비해 기억하기 쉽다!)

ex) www.wecode.com , www.google.com (빨간색 부분만 도메인)

(도메인 주소는 이렇게 유료로 구입할 수 있다.)


DNS (Domain Name System)

DNS 또는 Domain Name System은 사람이 읽을 수 있는 도메인 이름(ex : www.wecode .com)을 컴퓨터가 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환해준다.

DNS는 이름과 숫자 간의 매핑을 관리하여 마치 전화번호부와 같은 기능을 하는 것!!!

👉 쿼리란?

DNS 서버란 도메인과 실제 호스트 서버를 연결해주는 중간 서버로, 사용자가 도메인 이름을 웹 브라우저에 입력하면, 이를 인터넷상의 주소(IP 주소)로 변환시켜 해당 사용자를 어떤 서버(호스트 서버)에 연결할 것인지를 제어한다.

이러한 요청을 쿼리라고 부른다.

DNS 서버 서비스 ex) Amazon Route 53, Cafe24 도메인관리, 가비아 네임서버 관리

  1. 사용자가 브라우저에 URL(도메인 주소) 검색
  2. 도메인 주소가 DNS 서버에 전송됨
  3. DNS 서버가 도메인에 매칭되는 IP 주소를 브라우저에 반환
  4. 브라우저는 IP주소를 이용해서 타겟 호스트 서버에 HTML,CSS,JS 등의 홈페이지에 필요한 구성 요소를 요청
  5. 호스트 서버에서 실제 홈페이지 구성 요소를 응답

Bonus! 배포

배포한다 or deploy한다 라는 말을 자주 듣는데, 요게 대체 무슨 말일까?

배포란, 그동안 개발하던 것을 세상(인터넷상)에 드디어 공개하고 모든 사람들이 접근해서 볼 수 있게 하는 것을 의미한다.

내 컴퓨터에서 계속 작업한 실제 홈페이지 구성요소(HTML,CSS,JS) 파일들을 타겟 호스트 서버(그림에서는 wecode 호스트 서버)에 업로드하면 그때서야 배포가 되어서 다른 사람들이 도메인 주소를 통해 접근할 수 있다.

만약 도메인 주소를 구입하지 않았다면? 타겟 호스트 서버의 IP 주소를 통해서도 물론 접속할 수 있다!

profile
하루는 치열하게 인생은 여유롭게

0개의 댓글