본문 바로가기

기본공부/웹서버&웹프로그래밍

웹프로그래밍 - 웹과 웹 프로그래밍 (1)

웹프로그래밍 - 웹과 웹 프로그래밍

URL과 웹 페이지

https://developer-yeony.tistory.com/ 처럼 웹 브라우저의 주소줄에 표시되는 것을 URL이라고 한다. URL은 Uniform Resource Locator의 약자로 일종의 주소와 같은 역할을 한다. 집 주소가 다르면 다른 건물인 것 처럼 URL이 다른 경우에도 다른 결과가 웹 브라우저에 표시되는 것을 알 수 있다.

 

웹 브라우저의 주소줄에 URL을 입력하면 웹 브라우저에 URL에 해당하는 내용이 출력되는데, 이렇게 웹 브라우저에 출력된 내용을 웹 페이지(web page)라고 한다. 흔히 홈페이지라고 부르는 웹 사이트는 웹 페이지의 묶음이다.

 

웹 페이지의 주소를 표현할 때 사용하는 URL은 몇 개의 요소로 구성되는데, 주요 구성은 아래와 같다.

 

https://dic.daum.net/search.do?q=it

순서대로 프로토콜, 서버이름, 경로, 쿼리 문자열이다.

 

URL의 주요 구성 요소

구성요소 설명
프로토콜 웹 브라우저가 서버와 내용을 주고받을 때 사용할 규칙이름이다. 웹 페이지의 주소를 표현할 때는 http를 사용한다.
서버 이름 웹 페이지를 요청할 서버의 이름을 지정한다. 서버의 이름은 dic.daum.net과 같은 도메인 이름이나 IP주소를 입력할 수 있다.
경로 웹 페이지의 상세 주소에 해당한다. 웹 페이지 마다 다른 경로를 갖는다.
쿼리 문자열 추가로 서버에 보내는 데이터에 해당한다. 같은 경로라 하더라도 입력한 값에 따라 다른 결과를 보여줘야 할 때 쿼리 문자열을 사용한다. 검색 결과를 보여주는 페이지일 때 입력한 검색어에 따라 다른 내용이 표시되는데 보통 쿼리 문자열을 이용해서 검색어를 전달한다.

 

웹 브라우저와 웹 서버

URL을 입력했을 때 웹 페이지가 웹 브라우저에 표시되는 이유는 아래와 같다.

 

웹 브라우저와 웹 서버의 통신 과정

 

웹 브라우저에 URL을 입력하면 웹 서버라 불리는 프로그램이 웹 브라우저에 웹 페이지를 제공한다. 웹 브라우저가 웁 서버에 웹 페이지를 달라고 하는 것을 요청(request)라고 표현하고, 요청한 웹 페이지를 웹 브라우저에 제공하는 것을 응답(response)라고 한다.

 

웹 브라우저와 웹 서버는 다른 컴퓨터에 위치한다.  웹 서버가 다른 컴퓨터에 실행되고 있기 때문에 웹 브라우저가 웹서버에 연결하려면 웹 서버가 실행중인 컴퓨터의 주소를 알아야 하는데 이 주소를 IP주소라고 한다. 그런데 IP 주소는 외우기 쉽지 않으므로 IP 주소 대신에 developer-yeony.tistory.com과 같이 기억하기 좋은 도메인 이름을 사용한다.

 

웹 브라우저와 웹 서버는 IP주소를 이용해서 연결하기 때문에 도메인 이름을 IP 주소로 변환할 필요가 있는데, 이 때 사용하는 것이 바로 DNS(Domain Name Server)이다. 웹 브라우저에 URL을 입력하면 웹 브라우저는 도메인 이름에 해당하는 IP주소를 DNS에 요청하고, DNS는 IP 주소를 응답으로 제공한다.

 

한 개의 컴퓨터에서는 웹 서버 프로그램만 실행되는 것이 아니라 스트리밍 서버프로그램, 채팅 서버프로그램 등이 실행될 수 도 있다.  IP주소는 연결할 컴퓨터를 구분하는데 사용되기 때문에 IP 주소만으로는 컴퓨터의 어떤 서버 프로그램을 실행할 지 알 수 없다.

 

이런 이유로 각 서버 프로그램은 클라이언트가 연결할 때 다른 서버 프로그램과 구분할 수 있도록 포트(port)를 사용한다. 포트는 숫자로 된 번호로 서버 프로그램마다 구분되는 포트 번호를 사용하며, 클라이언트는 IP주소와 함께 포트 번호를 사용해서 원하는 서버 프로그램에 연결하게 된다.

 

웹 서버가 사용하는 기본 포트 번호는 80이다. 이는 URL에서 프로토콜이 http인 경우 별도로 포트를 지정하지 않으면 80 포트로 연결한다는 것을 뜻한다. 

클라이언트(Client)와 서버(Server)

네트워크 프로그램에서 요청하는 쪽을 클라이언트라고 부르고, 요청을 받아 알맞은 기능이나 데이터를 제공하는 쪽을 서버라고 한다. 웹 브라우저는 HTML문서나 이미지등을 요청하므로 클라이언트에 해당하고, 웹 서버는 서버에 해당된다.