**URL(Uniform Resource Locator)**은 인터넷상에서 웹 리소스(웹 페이지, 이미지, 동영상 등)의 위치를 식별하는 주소 체계입니다. 웹 브라우저나 다른 클라이언트가 웹 서버로부터 리소스를 요청하고 검색하는 데 사용됩니다. 웹 사이트의 계층 구조를 반영한 URL 구조는 검색 엔진이 웹 사이트의 구조와 내용을 이해하고 인덱싱하는 데 도움을 줄 수 있으며, 사용자가 사이트 내에서 쉽게 이동할 수 있게 도와줍니다. URL 구조는 다음과 같이 구성됩니다.
위 URL은 ‘www.example.com’ 도메인에서 ‘IT 분야의 웹 트렌드에 관한 기사’를 보여주고 있습니다./articles/it/web-trends
경로는 IT 분야에서의 웹 트렌드 주제로 구성된 기사를 디렉토리 구조를 통해 표현합니다. 쿼리 매개변수 ?category=seo
는 SEO 카테고리에 속하는 블로그의 기사를 필터링하는 데 사용되며, 프래그먼트 #top-10
은 해당 페이지에서 상위 10개의 주요 항목을 가리키고 있습니다.
프로토콜(Protocol)
URL의 첫 번째 요소는 웹 브라우저가 웹 서버와 통신하는 데 사용되는 통신 프로토콜을 나타냅니다. http://
와 같은 형태로 표현되며, 일반적으로 HTTP(HyperText Transfer Protocol)와 HTTPS(HTTP Secure) 프로토콜을 사용합니다. 그 외의 다른 프로토콜로는 FTP, SSH, SMTP 등이 있습니다.
호스트(Host)
리소스가 위치한 서버의 도메인 이름이나 IP 주소로 나타내며, 해당 웹 사이트의 서버를 찾는 데 사용됩니다. 일반적으로는 **도메인(Domain)**이 사용됩니다. 도메인은 ‘www.example.com’과 같은 문자열로 표시되어 웹 사이트의 홈페이지를 나타냅니다. 이는 일반적으로 웹 사이트의 기본 주소로 사용됩니다. 도메인을 세부적으로 살펴보면 계층 구조로 구성됨을 알 수 있습니다. IP 주소는 192.0.2.1
과 같이 컴퓨터 네트워크상에서 서버를 고유하게 식별하는 숫자로 구성된 형식으로 웹 서버의 위치를 식별합니다.
<aside> 📍 도메인 계층 구조 도메인 이름은 계층적으로 구성됩니다. 여러 개의 레벨로 구성되며, 점(.)으로 구분됩니다. 이 구조는 오른쪽에서 왼쪽으로 최상위 수준 도메인(Top-Level Domain)부터 시작하여 하위 도메인(subdomain)까지 계층적으로 이루어집니다.
예를 들어, www.example.com과 같은 도메인 형태에서 com
은 최상위 수준 도메인(Top-Level Domain, TLD)이고, example
은 최상위 수준 도메인의 하위 도메인으로 사용됩니다. 마지막으로 www
는 example.com 도메인의 서브도메인이 됩니다.
</aside>
포트(Port)
서버에서 리소스에 접근하기 위해 사용되는 네트워크 포트 번호를 지정합니다. 웹 서버의 기본 포트는 HTTP의 경우 80
번, HTTPS의 경우 443
번입니다. URL을 표기할 때는 보통 포트 번호를 생략하며, 생략 시 자동으로 기본 포트가 적용됩니다.
경로(Path)
웹 서버 내에서 리소스의 경로를 나타냅니다. 웹 사이트의 계층 구조가 URL의 경로 부분에 반영되며, 웹 서버는 이를 기반으로 요청된 리소스를 찾아 제공합니다. 각 계층은 디렉토리나 파일명으로 표현되며, URL 경로에서는 슬래시(/
)를 사용하여 계층을 구분합니다. 이렇게 구분된 계층은 해당 페이지의 카테고리, 하위 카테고리, 콘텐츠 페이지 또는 파일명의 위치를 나타내게 됩니다. 예를 들어, URL의 ‘www.example.com/articles/it/web-trends’ 부분을 경로 계층 구조로 표시했을 때 다음과 같은 구조로 나타낼 수 있습니다.
<aside> 📍 경로 계층 구조
경로 계층 구조는 RESTful API 설계 원칙 중 하나입니다. (RESTful API: Representational State Transfer(REST) 아키텍처 스타일을 따르는 웹 서비스를 구현하기 위한 API) RESTful API는 자원을 중심으로 한 개념을 강조하며, 이를 URL 경로로 표현합니다. 경로 계층 구조를 설계함으로써 자원 간의 계층 구조와 관련된 기능과 동작을 표현할 수 있습니다. RESTful API는 URL을 사용하여 클라이언트가 서버에서 원하는 리소스를 식별하고 요청하는 방식으로 동작합니다.
</aside>
쿼리(Query)
쿼리 문자열은 URL에 추가적인 매개변수를 전달하는 데 사용됩니다. 물음표(?
)로 시작하며, 주로 웹 애플리케이션에서 검색 조건, 필터링, 페이지 번호 등을 전달합니다. 쿼리 문자열의 매개변수는 key(키)=value(값)
쌍의 형태로 표현되며, 각 매개변수는 앰퍼샌드(&
)로 구분됩니다.
프래그먼트(Fragment)
해시(#
)로 시작하는 프래그먼트 식별자는 문서나 리소스 내 특정 위치를 가리킬 때 사용됩니다. 주로 HTML 문서의 앵커로 사용되며, 문서 내의 특정 섹션 또는 요소로 바로 스크롤하거나 참조할 수 있습니다. 프래그먼트 식별자는 문서 내의 ID나 이름과 일치하는 문자열로 표현됩니다.
다음은 URL 구조 최적화를 위한 URL 설계 가이드라인 입니다.
위의 가이드라인은 URL 구조 최적화를 위한 일반적인 원칙을 제시합니다. 이를 Restful API나 웹 사이트에 적용하여 URL을 설계할 수 있습니다. 그러나 각 프로젝트의 특정 요구사항과 컨텍스트에 맞게 조정하여 적용하는 것이 중요합니다.
URL의 구조는 검색 엔진이 콘텐츠를 이해하고 인덱싱하는 데 영향을 미치며, 계층 구조와 URL에 포함된 키워드는 검색 엔진에게 웹 페이지의 테마와 관련성을 알려줍니다. 이를 통해 검색 결과에 노출되는 가능성을 높일 수 있습니다.