본문 바로가기
프로그래밍/네트워크

웹 페이지 구조: 웹 서버와 클라이언트의 통신

by min_daily 2024. 12. 1.

 

웹 페이지 열람 구조 - 웹 서버와 클라이언트의 통신

인터넷은 인프라 기술과 관련 프로토콜을 기반으로 한 거대한 서비스 네트워크입니다. 이 네트워크에서는 웹 서버와 웹 클라이언트 간의 정보 열람 및 조작이 일반적으로 이루어집니다. 이러한 구조는 오늘날 우리가 사용하는 웹 서비스의 기초를 형성하고 있습니다.

 

웹을 구성하는 인프라 기술
웹은 정확히 말하면 World Wide Web을 의미합니다. 이 네트워크 모델은 클라이언트-서버 구조를 기반으로 하며, TCP/IP, HTTPS, DNS 등 다양한 인프라 기술을 활용합니다.

 

웹의 구성 요소는 다음과 같습니다:
- 웹 서버: 요청받은 데이터를 클라이언트에 제공하는 역할을 합니다.
- 웹 클라이언트: 사용자가 웹 페이지를 열람하기 위해 사용하는 브라우저입니다.
- 프로그래밍 언어: HTML, JavaScript, PHP, Java 등 다양한 언어가 사용됩니다.
- 데이터베이스: SQL과 같은 데이터베이스 기술이 정보를 저장하고 관리하는 데 사용됩니다.
- XML: 데이터 구조와 속성을 기술하는 방법으로 쓰입니다.
- REST API: 애플리케이션 간의 연계 규칙을 정의합니다.
이러한 인프라 기술은 기업 웹 페이지, 온라인 회의 서비스, 동영상 스트리밍 서비스, 클라우드 컴퓨팅 등 다양한 기능과 서비스를 제공합니다. 이러한 요소들이 통합되어 사용자의 요구를 충족시키는 웹 환경을 형성합니다.

 

웹의 기본 구조
초기 웹은 주로 학술 논문 등을 열람하기 위한 서비스로 시작되었습니다. 이때 논문은 문자, 수식, 그림, 이미지 등을 포함하고 있었으며, 다양한 형식으로 정보를 제공했습니다. 미래의 확장성을 고려하여 HTML(HyperText Markup Language) 형식이 채택되었습니다. HTML은 텍스트와 멀티미디어 콘텐츠를 통합할 수 있는 유연성을 제공합니다.
현재 웹 서버로는 Apache, IIS, NGINX 등이 사용되며, 웹 브라우저로는 구글 크롬, 마이크로소프트 엣지, 사파리, 모질라 파이어폭스 등이 있습니다. 이러한 서버와 클라이언트 간의 상호작용은 웹의 기본적인 기능을 수행하는 데 필수적입니다.
웹은 HTML 형식의 문서를 웹 서버에 저장하고, 웹 클라이언트인 웹 브라우저가 인터넷을 통해 웹 서버에 액세스하여 해당 페이지를 표시하는 방식으로 작동합니다. 사용자가 웹 브라우저에 URL을 입력하면, 브라우저는 해당 URL을 기반으로 웹 서버에 요청을 보내고, 서버는 요청에 대한 응답으로 HTML 파일을 반환합니다.

 

URL/URI - 인터넷상의 장소를 특정하는 식별자

URL(Uniform Resource Locator)은 네트워크나 서버를 식별하는 데 필수적인 요소입니다. URL은 리소스의 보관 위치를 나타내며, 도메인 이름과 HTTP 또는 HTTPS 프로토콜을 사용하여 특정합니다. URL과 유사한 용어로는 URI(Uniform Resource Identifier)와 URN(Uniform Resource Name)이 있습니다. URL은 리소스의 위치를 나타내고, URI와 URN은 각각의 리소스 위치와 이름을 기술하는 방법입니다.

 

URL의 구성 요소는 다음과 같습니다:
- 스키마: 접근하는 프로토콜을 지정합니다(예: HTTP, HTTPS).
- 권한: //로 시작하며 장소를 지정합니다.
- 호스트 정보: 서버의 도메인 이름을 포함합니다.
- 포트 정보: 액세스할 포트 번호를 명시합니다.
- 경로: 서버의 파일 경로를 /로 구분하여 지정합니다.
- 쿼리: ? 이후의 문자열을 변수 또는 명령으로 지정합니다.
- 프래그먼트: 서버의 응답이나 부호로 웹 브라우저가 처리하는 정보입니다.
이러한 URL의 구조는 웹 페이지를 찾는 데 있어 필수적인 역할을 하며, 사용자가 원하는 정보에 빠르게 접근할 수 있도록 도와줍니다.

 

HTTP/HTTPS - 웹에서 사용되는 프로토콜

웹에서는 HTTP(HyperText Transfer Protocol)와 HTTPS(HyperText Transfer Protocol Secure)라는 프로토콜을 사용하여 정보를 교환합니다. HTTP는 보안을 강화하지 않은 프로토콜이며, HTTPS는 패킷 페이로드를 암호화하여 보다 안전한 상호작용을 제공합니다.
웹은 클라이언트-서버 모델로 구성되어 있으며, 일반적인 프로세스는 웹 브라우저가 웹 서버에 "이 웹 페이지를 표시하고 싶다"는 요청을 보내는 것입니다. 요청 정보는 URL로 기술되며, 서버는 해당하는 HTML 파일을 반환하면서 응답합니다. 이 과정에서 HTTP와 HTTPS 프로토콜이 사용됩니다.
HTTP는 하위 프로토콜로 TCP를 사용하여 세션을 설정하지만, 웹 브라우저와 웹 서버 간의 요청과 응답은 독립적으로 처리됩니다. 이러한 통신을 스테이트리스라고 하며, 각 통신이 독립적이므로 같은 웹 페이지를 여러 번 요청해도 매번 같은 HTML 파일이 전송됩니다. 이는 웹 서버가 여러 요청을 처리하는 동안 상태를 유지하기 어렵기 때문입니다.
이러한 통신의 비효율성을 해결하기 위해 웹 브라우저는 캐시 기능을 사용합니다. 웹 브라우저는 한 번 접속한 웹 페이지 정보를 저장하고, 두 번째 접속부터는 페이지가 변경되지 않으면 캐시된 파일을 사용하여 서버 접속을 회피합니다. 이는 서버의 부하를 줄이고 웹 페이지 로딩 속도를 개선하는 데 기여합니다.

웹은 다양한 인프라 기술과 프로토콜을 통해 정보의 열람과 조작을 가능하게 하며, 그 구조는 클라이언트-서버 모델에 기반하고 있습니다. URL과 프로토콜의 이해는 웹 페이지를 효과적으로 열람하고 사용할 수 있는 필수적인 요소입니다. 이러한 지식을 통해 사용자는 더 나은 웹 경험을 누릴 수 있습니다.