티스토리 뷰
🌐 URL의 구조와 의미: 완전 정리
🔷 URL이란 무엇인가
URL(Uniform Resource Locator) 은 인터넷에 존재하는 특정 자원의 위치를 지정하기 위해 사용되는 표준 주소 체계입니다.
우리는 웹사이트를 방문할 때마다 브라우저의 주소창에 어떤 문자열을 입력하거나 링크를 클릭합니다. 그 순간 웹 브라우저가 서버와 통신하기 위해 사용하는 정보가 바로 URL입니다. URL이 없다면 인터넷에 흩어진 수많은 페이지, 이미지, 영상 등을 찾는 것은 불가능합니다. URL은 단순한 문자열처럼 보이지만 그 안에는 “어디서”, “무엇을”, “어떻게” 요청할지에 대한 모든 정보가 담겨 있습니다.
예를 들어, 다음과 같은 주소를 보겠습니다.
https://www.example.com:8080/path/to/page?search=query#section1
이 한 줄의 문자열에는 서버와 클라이언트 간 통신을 위해 필요한 다양한 정보가 하나도 빠짐없이 들어 있습니다. 이제 이 URL의 구조를 하나씩 분해해 보고 각 요소가 어떤 의미와 역할을 갖는지 살펴보겠습니다.
🔷 URL 전체 예시와 구성요소
먼저 URL의 전체 모습을 예시로 보여 드립니다. 아래는 하나의 URL입니다.
https://www.example.com:8080/path/to/page?search=query#section1
이 URL은 총 5개의 주요 요소로 구성되어 있습니다. 표로 전체를 요약하면 다음과 같습니다.
구성요소 | 값 |
---|---|
Scheme | https |
Authority | www.example.com:8080 |
Path | /path/to/page |
Query | search=query |
Fragment | section1 |
✅ 1. Scheme (스킴)
정의
URL의 맨 앞에 위치하며, 서버와 통신할 때 사용할 프로토콜(통신 방식) 을 지정하는 부분입니다.
목적
인터넷에는 여러 가지 통신 규칙이 있습니다. 같은 데이터라 하더라도 어떤 방식으로 주고받느냐에 따라 프로토콜이 달라집니다. 브라우저가 어떤 방식으로 서버에 접근해야 하는지를 알려주는 것이 스킴입니다. 스킴이 올바르게 지정되지 않으면 서버가 요청을 이해하지 못해 오류가 발생할 수 있습니다.
예시
http://
: 암호화되지 않은 웹 요청https://
: 보안(암호화)된 웹 요청ftp://
: 파일 전송을 위한 프로토콜mailto:
: 이메일 작성 프로그램 실행
예를 들어 https://
로 시작한다면, 브라우저는 암호화된 연결을 시도합니다.
✅ 2. Authority (권한 정보, 호스트 정보)
정의
스킴 뒤의 //
다음에 나타나는 부분으로, 요청을 보낼 서버의 주소와 포트번호 를 나타냅니다.
목적
인터넷에는 수많은 서버가 있습니다. 그 중 어느 서버에 요청을 보낼지를 명확히 지정하는 것이 필요합니다. 도메인 또는 IP 주소를 통해 정확한 서버로 요청이 전달됩니다. 포트 번호는 선택 사항으로, 서버가 여러 가지 서비스를 제공할 때 특정 포트를 지정해 요청할 수 있도록 합니다.
예시
- www.example.com : 웹사이트의 도메인명
- 192.168.0.1 : 서버의 IP 주소
- example.com:8080 : 8080번 포트로 요청
HTTP 기본 포트는 80, HTTPS 기본 포트는 443이라서 보통은 생략됩니다. 다른 포트를 지정해야 하는 경우에만 명시합니다.
✅ 3. Path (경로)
정의
서버 내부에서 요청할 자원의 위치(폴더 및 파일 경로) 를 지정하는 부분입니다. 도메인 뒤에 /
로 시작합니다.
목적
서버의 디렉토리 구조 안에서 어떤 파일을 요청하는지를 정확히 지정합니다. 클라이언트가 경로를 보내면 서버는 그 경로에 해당하는 자원을 찾아 응답합니다.
예시
- /index.html : 홈페이지 파일
- /images/logo.png : 이미지 파일
- /user/profile/1234 : 특정 사용자의 프로필 페이지
서버의 내부 폴더 구조나, 웹 애플리케이션의 라우팅 규칙에 따라 이 경로가 해석됩니다.
✅ 4. Query (질의 문자열)
정의
?
기호 뒤에 위치하며, 요청과 함께 서버에 전달할 추가 데이터(검색어, 필터 조건 등) 를 담는 부분입니다.
목적
사용자가 입력한 검색어, 정렬 순서, 페이지 번호 등과 같이 요청 시 필요한 데이터를 서버에 전달합니다. 서버는 이 데이터를 해석해 적절한 결과를 돌려줍니다.
예시
- ?q=URL&lang=ko : ‘URL’을 검색하고 언어는 ‘한국어’
- ?page=2&sort=desc : 2페이지를 내림차순으로 요청
여러 값을 전달할 때는 &
로 구분합니다. 질의 문자열이 없을 수도 있습니다.
✅ 5. Fragment (문서 내부 위치)
정의
#
기호 뒤에 위치하며, 문서 내부에서 특정 위치(id를 가진 요소) 로 이동하도록 지정합니다.
목적
길고 복잡한 문서에서 특정 부분으로 바로 이동할 때 유용합니다. 서버에 요청되지 않고, 브라우저가 클라이언트 측에서만 처리합니다.
예시
- #top : 문서의 맨 위
- #section3 : 세 번째 섹션
HTML 문서 안에 id="section3"
인 요소가 있어야 작동합니다.
🔷 요약
URL은 인터넷 자원의 위치를 가리키는 표준화된 주소입니다.
단순히 ‘어디’에 있는지를 넘어, 어떻게 요청할지, 추가 데이터는 무엇인지, 문서의 어느 부분까지 갈지를 모두 정의합니다.
요소 | 역할 |
---|---|
Scheme | 서버와의 통신 방식 지정 |
Authority | 요청할 서버의 위치 지정 |
Path | 서버 내부의 자원 경로 지정 |
Query | 요청에 필요한 부가 데이터 전달 |
Fragment | 문서 내부의 특정 위치로 이동 |
'정보처리기사' 카테고리의 다른 글
데이터그램 방식과 가상 회선 방식: 자세한 설명 (0) | 2025.07.08 |
---|---|
소프트웨어 설계의 응집도: 기능적 응집, 순차적 응집, 교환적 응집, 절차적 응집, 시간적 응집, 논리적 응집, 우연적 응집 (0) | 2025.07.07 |
UML의 관계: 의존, 연관, 일반화 (0) | 2025.07.06 |
데이터베이스 키, 슈퍼키, 후보키, 기본키, 대체키, 외래키 총정리! (0) | 2025.07.04 |
스머프 공격(Smurf Attack) - 원리와 대응법 (1) | 2025.07.03 |
- Total
- Today
- Yesterday
- 프로그래밍
- DP
- 알고리즘문제풀이
- python 알고리즘
- 백준
- 알고리즘
- c++알고리즘
- C++
- 파이썬코딩
- dfs
- 코딩
- 코딩 테스트
- 그리디
- 파이썬
- 인접 행렬
- C++ 알고리즘
- 문자열처리
- 브루트포스
- 알고리즘기초
- 코딩테스트
- 그래프 탐색
- Python
- 동적계획법
- 객체지향
- c언어
- 문제 풀이
- 문제풀이
- 동적 계획법
- 알고리즘 문제풀이
- 그리디알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |