웹 브라우저는 URL 주소에 해당하는 웹 서버(Web Server)에 연결하고, 해당 주소에서 볼 수 있는 내용을 읽어 들여 보여준다.
웹 서버?
- 웹 서버는 소프트웨어(Software)를 보통 말하지만, 웹서버 소프트웨어가 동작하는 컴퓨터를 말하기도 한다.
- 웹 서버의 가장 중요한 기능은 클라이언트(Client)가 요청하는 HTML 문서나 각종 리소스(Resource)를 전달하는 것.
- 여기서 클라언트란 보통 웹 브라우저.
- 웹 브라우저나 웹 크롤러 모두 웹 서버에게 HTTP에 맞도록 리소스를 요청하게 되고 웹 서버는 요청한 리소스를 반환한다. 만약 리소스가 존재하지않거나 요청한 리소스를 전송할 때 문제가 발생한다면 에러 메서지를 전송하게 된다.
- 웹 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장된 정적(static)인 데이터거나 동적인 결과가 될 수 있다.
- 정적인 데이터 : 이미지, HTML파일, CSS파일, JavaScript파일과 같이 컴퓨터에 저장되어 있는 파일들.
- 동적인 결과 : 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물.
- 웹 크롤러 : 네이버나 구글 같은 검색 사이트에서 다른 웹사이트 정보를 읽어 갈때 사용하는 소프트웨어를 이야기 함.
- 클라이언트와 웹 서버 간에는 보통 HTTP를 통해서 통신을 하게 됨.
- URL주소가 HTTP로 시작된는 이유는 HTTP(Hyper Text Transfer Protocol:인터넷상의 데이터를 주고받기 위한 규약)를 사용한다는 것.
웹 브라우저와 웹 서버간의 통신 살펴보기
웹 브라우저와 웹 서버간의 통신 보는 법
- 웹 브라우저에서 오른쪽 버튼 클릭→ 검사 선택
- Network탭 선택 (All메뉴 선택)
- 새로고침시 웹브라우저 요청과 그 요청에 따른 서버의 응답을 볼 수 있음
웹 브라우저-웹서버간 동작
- 웹 브라우저가 url주로 서버에 접속을 했을 때, 해당 주소에서 기본으로 보이는 HTML문서를 요청
- 웹 서버는 사용자가 요청한 HTML문서를 웹 브라우저에 전달함.
- 웹브라우저는 웹 서버로 부터 전송받은 HTML문서를 읽어들인 후에 해석을 한다. HTML문서를 알맞게 보여주기 위해서 필요한 이미지,CSS,JavaScript와 같은 이런 리소스들에 대해서 URL을 추출해내고 웹서버에게 동시에 여러개의 리소스를 요청하게 됨.
- 웹서버는 동시에 요청한 여러개의 요청을 받아들여서 그 결과를 브라우저에게 전송
- 웹브라우저는 아까 해석했던 HTML문서와 그리고 읽어들인 여러개의 응답을 하나로 합쳐서 그 결과를 화면에 보이게 함. 이렇게 하나로 합쳐서 보여주는 작업을 렌더링이라 함.
웹 서버 소프트웨어 종류
- Apache, Nginx, Microsoft IIS, Google 웹 서버 등...
- Apache 웹 서버는 Apache Software Foundation에서 개발한 웹 서버로 오픈소스 소프트웨어이며, 거의 대부분 운영체제에서 설치 및 사용을 할 수 있습니다.
- Nginx는 차세대 웹서버로 불리며 더 적은 자원으로 더 빠르게 데이터를 서비스하는 것을 목적으로 만들어진 서버이며, Apache웹서버와 마찬가지로 오픈소스 소프트웨어입니다.
출처 및 참고자료
https://www.boostcourse.org/web316/