본문 바로가기
테크노트/html

웹(Web)의 이해

by 테크한스 2022. 1. 6.

이번시간에는 웹개발을 하기 전에 알아야할 기본적인 웹의 이해와

웹의 동작등에 대해 이야기하겠습니다.

 

웹을 이해하기 전에 우선 클라이언트와 서버에 대해서 알아야합니다.

 

클라이언트(client)는 요청자, 손님, 고객, 엔드유저 등이라고 말할 수 있고

서버(server)는 봉사자, 정보제공자, 백엔드 등이라고 표현합니다.

 

이들의 관계는 요청과 응답으로 이루어져 있습니다.

, 클라이언트가 요청하면 서버는 해당 정보를 응답해 주는 구조입니다.

 

우리가 인터넷을 하기 위해 웹브라우져를 열고 특정 URL (www.google.com)을 호출하면

자신은 클라이언트로서 요청한 것이고 해당 서버는 요청한 내용에 대해 응답을 해주어야 합니다.

모든 서버는 자신의 주소인 IP주소를 가지고 있습니다. 그런데 IP주소는 외우기가 힘들고

숫자로 기억하고 실행하는 것이 힘들기 때문에 사람들이 이해하기 쉬운 텍스트로 변경을 하였습니다.

하지만 서버는 그대로 IP주소로 호출이 되고 있습니다. 그래서 변환기가 필요한 것이고 그 역할을

하는 것이 DNS(도메인 네임 서버, domain name server)입니다.

 

 

즉 우리는 www.google.com을 호출하지만 실제로는 IP주소로 호출한다는 의미이지요

IP주소를 찾았으면 HTTP프로토콜을 사용하여 HTTP 요청(request)메시지를 생성합니다.

이렇게 생성된 HTTP메시지는 TCP프로토콜로 인터넷을 통해서 해당 IP주소의 서버로 전송됩니다.

 

 

이렇게 도착한 HTTP메시지는 웹페이지 URL 정보로 변환되고 서버(웹서버)는 도착한 URL 정보에 대한

데이터를 찾아보고 해당되는 내용을 다시 HTTP프로토콜을 사용해 HTTP응답메시지(response)를 생성

합니다. 이렇게 생성된 응답메시지는 TCP프로토콜로 인터넷을 거쳐 원래의 요청한 컴퓨터로 전송됩니다.

도착한 HTTP응답메시지는 HTTP프로토콜에 의해 웹페이지에 보이게 되는 것입니다.

 

 

 

 

복잡한 것처럼 보이지만 이미 표준 프로토콜에 의해서 주고 받는 것이기에

원리만 이해를 하면 되겠습니다.

 

이런 모든 복잡한 과정을 처리하는 것이 바로 HTTP프로토콜인데요

HTTP에 대해서도 잠시 알아보면


HTTP
는 서버/클라이언트 모델을 따르는 인터넷상의 데이터를 주고 받기 위한 프로토콜이며

HTTP는 문서, 이미지, 동영상, 텍스트 등 다양한 종류의 데이터를 전송하도록 설계되어 있습니다.

 

즉 클라이언트가 요청(request)하면 서버는 요청을 처리하고 응답(response)을 보내줍니다.

 

HTTP는 무상태(stateless) 프로토콜입니다.

이것은 클라이언트가 요청한 것에 대한 응답을 한 후에는 연결을 끊습니다. 항시 서버와 연결 상태가

아니라는 것입니다. 그렇기에 이런 프로토콜은 불특정다수에게 적합하며, 더 많은 사용자의 요청을 처리할 수 있습니다. 그러나 평소에는 연결이 끊어져 있기 때문에 클라이언트의 이전 상태를 알 수가 없는

단점이 있어서 쿠키나 세션이라는 작은 기억장치를 통해 이 클라이언트가 다시 요청했을 때 어떤 사용자라는 것을 알 수가 있는 것입니다.

 

HTTP은 주로 헤더부분과 바디부분으로 구성되는데, 요청메서드를 알아볼 필요가 있습니다.

요청메소드는 GET, POST, PUT, DELETE등으로 구성되는데

우리가 알아야 할 것은 GET방식과 POST방식입니다.

 

웹개발 할 때에 이것과 관련된 개발방식이 필요할 수 있겠습니다.

 

요청메소드가 GET방식일때는 바디부분이 없고 모든 요청 리소스가 URL(URI) 뒤에
붙어서 요청되는 방식이며 POST방식은 바디부분에 요청리소스가 붙어서 요청되는 방식입니다

 

응답메시지도 헤더부분과 바디부분으로 구성되는 전송됩니다.

 

HTTP에 대해서도 자세히 알아보면 좋겠지만 여기서는 웹 구동원리 관점에서만 이해하면 되겠습니다.

 

추가적으로 웹개발 할때에 알아야 할 용어 몇가지를 알아보겠습니다.

 

(1)   호스팅 : 호스팅은 서버의 일부분을 임대하여 일부 빌려서 사용한다는 의미입니다.
아까 설명했듯이 모든 인터넷은 사용자의 요청에 대해 응답할 서버가 반드시 존재해야 하는데,
이것을 서버 전체를 빌려서 만들 수도 있고, 메인 서버의 일부분만 빌려서 우리가 쓸 수 있을
정도만 빌리는 것입니다. 호스팅 서비스를 제공하는 대표적인 것인 AWS 나 CAFE24 입니다.

 

 

(2)   도메인 : domain은 아까 설명드린 모든 서버에 할당되는 IP주소 대신 사용되는 텍스트기반의 주소이름입니다. 즉 www.google.com 이름 자체가 도메인 이름이라고 부릅니다.

 

 

(3)   DNS : DNS 이것도 설명을 드린 부분입니다. 도메인 네임 서버라고 도메인 주소를 실행시키면 실제로 매핑되는 서버의 IP주소로 변환시켜주는 역할을 하는 서버입니다.

 

 

(4)   웹서버 : 웹서버는 서버측 장비라고 이해하면 됩니다. 어떤 사용자의 요청사항에 대해 응답을 해주는 서버를 이야기하는 것입니다. 이것은 apache나 nginx같은 서버을 일컬으며 때로는 추가적으로 웹서버 뒷단에 메시지 처리와 응답을 하는 WAS(web application server)를 두어서 운영하기도 합니다. 즉 웹서버는 정적인 페이지만 처리하고 WAS서브는 동적인 페이지를 처리 한다 라고 까지만 이해 하셔도 될 거 같습니다.

 

결론적으로 많이 설명을 드렸지만 이것만 이해하시면 됩니다.

 

웹(Web)은 사용자가 웹브라우져를 통해 요청(request)과 응답(response)으로 구성되는 페이지이다.

 

 

 

 

자세한 내용은 영상을 참조하세요

 

 

댓글