웹의 동작 방식
웹에서 정보를 주고받는 과정은 간단히 말해 요청과 응답이다. 사용자는 웹 브라우저에서 특정 리소스에 대한 요청을 하면 웹 서버로부터 해당 요청에 대한 응답을 받는다. 여기서 리소스란 웹 서버상에 존재하는 모든 종류의 정보나 컨텐츠를 의미하며 이 리소스를 식별하기 위한 유일한 문자열을 URI라고 한다. 일반적으로 브라우저에서 특정 웹 사이트에 접속하기 위해 입력하는 도메인 주소도 URI에 포함되는 개념이다. 그리고 웹 환경에서 웹 브라우저와 웹 서버가 통신하기 위해 주로 사용되는 프로토콜이 HTTP(HyperText Transfer Protocol)이다.
보다 자세한 동작 과정은 다음과 같다.
- 요청
- 사용자가 웹 브라우저에 URI를 입력한다.
- 웹 브라우저는 입력된 URI에서 도메인 주소를 추출하여 DNS 서버에 해당 도메인의 IP 주소를 요청한다.
- 웹 브라우저는 DNS 서버로부터 응답받은 IP 주소로 웹 서버에 HTTP 요청 메세지를 보낸다.
- HTTP 요청 메세지는 송신자, 수신자에 대한 데이터를 담은 TCP/IP 패킷과 함께 서버로 전송된다.
- 응답
- 웹 서버는 웹 브라우저로부터 받은 HTTP 요청 메세지를 통해 필요한 리소스를 찾는다.
- 리소스가 정적 컨텐츠라면 웹 서버에서 바로 응답하지만 동적 컨텐츠라면 WAS 및 DB와 상호작용 한다.
- 웹 서버는 응답할 리소스와 함께 HTTP 응답 메세지를 브라우저에 전송한다.
- HTTP 응답 메세지에는 요청된 리소스뿐만 아니라 상태 코드, 데이터 유형 등이 포함된다.
- 웹 브라우저는 받은 HTTP 응답 메세지를 해석하여 웹 페이지를 렌더링 한다.

URI(Uniform Resource Identifier)
URI란 웹에 존재하는 리소스를 식별하기 위한 유일한 주소이다. 하위 개념으로는 URL(Uniform Resource Locator)과 URN(Uniform Resource Name)이 있다. URL은 특정 리소스의 위치를 나타내는 주소이고, URN은 리소스를 유일하게 식별하는 이름이다. 일반적으로 URL이 주로 사용되기 때문에 URL에 대해서만 다룬다.
URL의 구조는 다음과 같다.
scheme://[userinfo@]host[:port][/path][?query][#fragment]
- scheme
- 리소스에 접근할 프로토콜을 지정한다. 일반적으로 웹 브라우저에서는 HTTP, HTTPS를 사용한다.
- userinfo [옵션]
- URL에 사용자 정보를 포함해서 인증하기 위해 사용한다.
- 거의 사용하지 않으며 생략 가능하다.
- host
- 호스트는 리소스가 위치한 서버의 도메인 이름이나 IP 주소를 나타낸다.
- port [옵션]
- 포트는 리소스에 접근하는 데 사용되는 네트워크 포트 번호를 나타낸다.
- 일반적으로 HTTP의 경우 80번, HTTPS의 경우 443번 포트가 사용된다.
- 생략 가능하다.
- path
- 경로(path)는 호스트 내에서 리소스의 위치를 의미한다.
- query [옵션]
- 서버에 리소스를 요청할 때 부가적인 정보를 전달하기 위해 사용하는 매개변수다.
- URL의 끝에 ? 기호로 시작하며 key=value 형식으로 매개변수를 나열하며 여러 개의 매개변수가 필요한 경우 & 기호로 연결한다.
- 필요하지 않다면 생략 가능하다.
- fragment [옵션]
- 웹 페이지 내에서 특정 부분을 가리키기 위해 사용된다.
- URL에 프래그먼트(fragment)를 붙이면 지정한 프래그먼트와 같은 id 속성을 갖는 html 요소로 스크롤이 이동한다.
'Web' 카테고리의 다른 글
| [Web] 웹 서버와 웹 애플리케이션 서버(WAS)의 차이 (0) | 2023.08.13 |
|---|---|
| [Web] 웹 애플리케이션이란? (0) | 2023.08.13 |
| [Web] REST API와 HTTP 메서드 (0) | 2023.08.03 |