본문 바로가기
Web/ETC

웹이 작동하는 방법

by 긴모양 2020. 5. 9.
내가 다룰 내용은 호스팅, ip주소, url, 도메인이란 무엇이고 웹이 어떻게 작동하는지 설명하고자 한다.

 

웹의 작동 방법

: 자세하게 들어가기 전에 이해를 돕기위해 (내가 더 잘 이해하기 위해) 간략하게 써보도록 노력하자면, 만약 이 글을 보고 있는 당신이 chrome 브라우저를 사용하고 있다. 이 브라우저에서 tistory라는 페이지에 접속하기 위해서 당신은 브라우저 상단의 검색창에 https://www.tistory.com/ 이라는 주소를 입력할 것(http통신)이다. 브라우저에서 이 주소를 tistory서버로 요청을 하고 서버에서 tistory에 대한 파일들을 응답 받게 되면서 콘텐츠들이 브라우저에 뿌려지게된다.

 

그럼 여기서 궁금증?!

 

서버의 파일들을 어떻게 받아오는 것일까? 

여기서 호스팅(Hosting)이 나온다. 호스팅이란 Web hosting service이며 사용자 요청이 오면 응답을 해주는 것이다. 사용자는 1명이 아니다. 여러 사람이며, 그들 모두가 정해진 시간에 활동하지 않는다 (= 변수가 많다.) 그렇기에 서버는 24시간 요청을 받고 응답을 해 줄 수 있어야한다. 인터넷에 연결이 되어있으면서도 꺼지지 않고 항상 켜져있어야 한다. 하지만, 일반 사람들이 서버를 위해 24시간 자신의 기기를 켜두는 것은 쉽지않고 그만큼 고려할 상황이 많이 생긴다. 서버가 꺼져있으면 사용자의 요청이 있어도 언제든지 응답을 못해주기 때문에

 

특정 사이트 url을 검색했을 때, 특정 서버를 어떻게 찾아가는걸까?

IP덕분인데, IP는 Internet Protocol의 줄임말로 Internet으로 통신하는 디바이스들이 서버와 브라우저가 정보를 주고 받는데 사용하는 프로토콜로 0.0.0.0부터 255.255.255.255까지 존재(8bit로 4개로 이뤄져 32bit)하며 프로토콜을 사용하는 인터넷이 연결된 모든 디바이스들을 구분하기 위해서 만들어진 고유한 숫자로 부여된 주소

 

그러면 url 대신에 IP를 브라우저에 검색해야하는거 아닌가?

맞다. 하지만, 우리는 IP주소를 외우는 것이 쉽지 않기 때문에 도메인(Domain)을 사용한다. 문자(영문)로 된 고유의 주소기에 IP보다는 기억하기 쉽다는 장점이 있다.

 

IP와 Domain이 같은거 아니야?

이것 또한 맞는 말인데, 앞서 설명했듯 IP보다는 기억하기 쉽기에 우리는 도메인을 사용한다. 그러면 IP와 도메인을 어떻게 사용하는 것일까? DNS(Domain Name System) 으로 DNS Server를 사용해서 도메인과 서버를 매칭해주는 것을 맵핑이라는 것을 한다. 브라우저에서 도메인을 입력했을 때, DNS Server에서 도메인을 인터넷상의 주소로 변환시켜서 브라우저에게 전달하고 다시 서버에게 요청한다.  

 


자, 여기까지 글로 이해하시느라 정말 힘드셨을 것 같은데,
어느정도 개념이 잡혔다면 아래의 이미지 설명을 보면 더 이해가 잘되시리라 생각됩니다.

HTTP 프로토콜이란?

컴퓨터끼리 서로 통신을 하기 위한 규칙 기본적으로는 TCP와 IP가 존재한다. HTML무너와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜로 HTTP는 웹에서 이뤄지는 모든 데이터 교환의 기초이다. 클라이언트 - 서버 프로토콜이기도 하다. 수신자 측에 의해 요청이 초기화되는 프로토콜을 의미한다. 클라이언트에 의해 전송되는 메세지를 요청(requests)라고 하며, 그에 대해서 서버에서 응답으로 전송되는 메세지를 응답(responses)라고 부른다. HTTP는 확장성이 좋다. 애플리케이션 계층의 최상위에 위치

 

HTTP 개요

HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 클라이언트-서버

developer.mozilla.org

 

그러면 서버란 정확히 무엇일까?

서버는 요청을 처리하고 응답을 제공하는 곳으로 사용하고 있는 노트북, 데스크탑도 서버가 될 수 있다. 요청에 의한 문서를 제공하는 역할을 하며 앞서 말했듯 서버는 언제 요청을 받게될지 모르기 때문에 24시간 연결이 되어있어야한다. 그렇기에 개인이 쓰는 노트북이나 데스크탑 외에 서버의 역할을 하기 위해 만들어진 서버 컴퓨터가 존재한다. 

내가 참고한 사이트는 아래의 링크로 들어가면 자세하게 설명해주기에 답답한 속을 시원하게 뚫어줄 것이라 생각된다.

 

서버란 무엇인가?

컴알못(a.k.a 컴퓨터를 알지 못하는)을 위한 쉬운 설명서! | 사실 컴퓨터 - 잘 알지 못했고, 별로 관심도 없었던 내가 컴퓨터 공학과에 처음 진학해서, '서버'라는 단어를 처음 들었을 때 이해하기��

brunch.co.kr

 

사용자 에이전트? 

사용자를 대신해서 동작하는 모든 도구, 브라우저는 항상 요청을 보내는 것이다. 요청을 받는 것은 서버이기에 서버가 될 순 없다. 

 

프록시가 뭐야 나는 아직 이해 못했어...

브라우저와 서버가 HTTP를 전달받고 할 때의 계층       

 

 

 

추가로 참고할 만한 사이트 찾아둔 것 : 틈틈히 읽어볼 것!

 

프런트엔드 개발자가 알아야하는 HTTP 프로토콜 Part 1

API 데이터 요청을 위해 꼭 알아야 하는 HTTP 프로토콜의 정의, HTTP Status Code, HTTP Methods 등

joshua1988.github.io

 

네트워크 기본

https://www.notion.so/bscnote/67cc227bd1e14c6dbce593b414607a3a 네트워크 기본 네트워크란? www.notion.so 네트워크란? 서로 연결하여 대화할 수 있게 하는 것 인터넷이란? inter는 '연결'을 의미함 internet은..

bscnote.tistory.com

 

Domain Name System(DNS)의 이해

생활코딩 WEB2 - Domain Name System을 수강하며 내용을 정리한 글입니다. 이 수업을 들으니 제가 얼핏 알았던 개념을 확실하게 알 수 있었고, 대표적인 면접 문제인 브라우저의 URL 입력창에 www.naver.com

zzsza.github.io

 

🙋‍♀️개발을 배우고 있는 입장이기에, 세부적이지 않거나 옳지 않은 내용이 있을 수 있습니다. 덧붙여 알려주시고 싶으시거나 잘못된 지식으로 인해 수정이 필요하다면 그 부분을 알려주시면 감사하겠습니다.

'Web > ETC' 카테고리의 다른 글

자료 구조의 Array와 Tuple  (0) 2020.05.13
웹은 어떻게 작동할까? 네트워크 OSI 7계층 모델  (0) 2020.05.12
git과 github | 로컬 저장소를 터미널에서 활용하기  (0) 2020.04.30
링크  (0) 2020.04.25
#개발자 도구  (0) 2020.04.25

댓글