URL 구조 알아보기 🔗
매일 인터넷을 사용하면서 URL을 보지만, 각 부분이 무엇을 의미하는지 잘 모를 수 있어요. URL의 구조를 이해하면 웹 개발이 훨씬 쉬워집니다! 차근차근 알아볼까요?
URL을 일상생활로 비유하면?
URL을 우편 주소로 비유해볼까요?
우편 주소 이야기 📬
대한민국 서울시 강남구 테헤란로 123 ABC빌딩 5층 501호
↓ ↓ ↓ ↓ ↓ ↓ ↓
국가 도시 구 거리 건물 층 호수
URL도 비슷해요:
https://www.example.com:443/products/shoes?color=red&size=10#reviews
↓ ↓ ↓ ↓ ↓ ↓
프로토콜 도메인 포트 경로 쿼리스 트링 해시
URL의 정의
URL (Uniform Resource Locator)
- 인터넷에서 자원(페이지, 이미지, 파일 등)의 위치를 나타내는 주소
- "웹 주소" 또는 "링크"라고도 불러요
URL 전체 구조 한눈에 보기
https://user:pass@www.example.com:443/products/shoes?color=red&size=10#reviews
└──┬─┘ └────┬────┘└───────┬───────┘└┬┘└──────┬──────┘└────────┬────────┘└──┬──┘
프로토콜 인증정보 도메인 포트 경로 쿼리스트링 해시/프래그먼트
하나씩 자세히 알아볼게요!
1. 프로토콜 (Protocol) 🔐
웹사이트에 접속하는 방법
https://example.com
└──┬─┘
프로토콜
주요 프로토콜
HTTP (HyperText Transfer Protocol)
http://example.com
- 평범한 웹사이트 접속 방법
- 보안 없음 ⚠️
- 데이터가 암호화되지 않음
- 요즘은 거의 사용 안 함
HTTPS (HTTP Secure)
https://example.com
- 보안이 있는 웹사이트 접속 방법 🔒
- 데이터가 암호화됨
- 현대 웹사이트 표준
- 자물쇠 아이콘 🔒 표시
기타 프로토콜
ftp://example.com # 파일 전송
mailto:user@email.com # 이메일 보내기
file:///C:/folder # 로컬 파일
팁
항상 HTTPS를 사용하세요! 특히 로그인, 결제, 개인정보 입력 시 HTTPS인지 꼭 확인하세요.
2. 도메인 (Domain) 🌐
웹사이트의 이름
https://www.example.com
└────── ┬──────┘
도메인
도메인 구조
www.example.com
└┬┘ └──┬──┘└┬┘
서브 이름 TLD
도메인 (최상위 도메인)
최상위 도메인 (TLD - Top Level Domain)
.com → 상업적 (가장 흔함)
.net → 네트워크
.org → 조직/비영리
.edu → 교육기관
.gov → 정부
.io → IT/스타트업 (인기)
.co.kr → 한국 기업
서브도메인 (Subdomain)
www.example.com → 웹사이트
blog.example.com → 블로그
api.example.com → API 서버
admin.example.com → 관리자 페이지
실제 예시
https://blog.naver.com
└┬┘ └──┬─┘└┬┘
서브 메인 TLD
도메인 도메인
3. 포트 (Port) 🚪
서버의 어느 문으로 들어갈지
https://example.com:443
└┬┘
포트
기본 포트
보통은 생략돼요 (자동으로 추가됨):
http://example.com → http://example.com:80 (자동)
https://example.com → https://example.com:443 (자동)
일반적인 포트 번호
| 포트 | 용도 |
|---|---|
| 80 | HTTP (웹) |
| 443 | HTTPS (보안 웹) |
| 21 | FTP (파일 전송) |
| 22 | SSH (원격 접속) |
| 3000 | 개발 서버 (Node.js) |
| 3306 | MySQL 데이터베이스 |
| 5432 | PostgreSQL |
| 8080 | 대체 HTTP |
개발 중에는?
http://localhost:3000 # React 개발 서버
http://localhost:8080 # Spring Boot
http://127.0.0.1:5000 # Flask/Python
4. 경로 (Path) 📂
웹사이트 안의 특정 페이지나 폴더
https://example.com/products/shoes/nike
└────────┬────────┘
경로
경로 구조
/products/shoes/nike
└┬┘ └┬┘ └┬┘
카테고리 상세 브랜드
실제 폴더 구조처럼 생각하면 돼요:
웹사이트
├── products/
│ ├── shoes/
│ │ ├── nike/
│ │ └── adidas/
│ └── clothes/
└── about/
실제 예시
https://github.com/facebook/react
└──────┬──────┘
경로
/사용자/저장소
5. 쿼리스트링 (Query String) 🔍
추가 정보나 검색 조건
https://example.com/search?q=javascript&sort=popular&page=2
└──────────────┬──────────────┘
쿼리스트링
구조
?key1=value1&key2=value2&key3=value3
└┬┘ └──┬──┘ └──┬──┘ └──┬──┘
시작 첫번째 구분자 세번째
(키=값) (&) (키=값)
실제 사용 예시
검색
https://google.com/search?q=javascript
└─────┬────┘
검색어: javascript
필터링
https://shop.com/products?category=shoes&color=red&size=10
└────────────┬────────────────┘
카테고리:shoes, 색:red, 사이즈:10