file: 이건 포트 없잖아
예상 시간: 5분
file: 이건 포트 없잖아
file: 이건 포트 없잖아
맞습니다! file://은 포트가 없음
이유: 네트워크 통신이 아니기 때문
https://example.com:443/page.html
└────┬────┘└┬┘
│ └─ 포트: 네트워크로 서버에 연결할 때 필요
└─ 호스트: 어느 서버?
file:///home/user/doc.pdf
└───────┬──────┘
└─ 로컬 경로: 내 컴퓨터 파일시스템
네트워크 안 씀 → 포트 필요 없음스킴별 비교
| 스킴 | 네트워크 사용 | 포트 |
|---|---|---|
https:// | ✅ 원격 서버 | 있음 (443) |
ftp:// | ✅ 원격 서버 | 있음 (21) |
ssh:// | ✅ 원격 서버 | 있음 (22) |
file:// | ❌ 로컬 | 없음 |
mailto: | ❌ 앱 호출 | 없음 |
tel: | ❌ 앱 호출 | 없음 |
spotify: | ❌ 앱 호출 | 없음 |
URI 구조가 스킴마다 다름
https://host:port/path ← 네트워크 기반
file:///path ← 로컬 파일 (슬래시 3개)
mailto:user@example.com ← authority 없음
tel:+82-10-1234-5678 ← 그냥 전화번호
urn:isbn:978-89-123-4567 ← 이름만URI는 통일된 "식별자" 형식이지, 모든 스킴이 같은 구조는 아님.
file:// 슬래시 3개인 이유
file://host/path ← 원래 구조 (host 자리가 있음)
file:///path ← host가 비어있으면 슬래시만 남음
↑
빈 host + /path = ///file://localhost/home/user/doc.pdf도 가능하지만, 보통 생략해서 file:///home/user/doc.pdf
★ Insight ─────────────────────────────────────
- URI는 유연한 규격: RFC 3986이 기본 문법을 정의하지만, 각 스킴이 자기만의 규칙을 추가로 정의함
- 포트 = TCP/UDP 개념: 네트워크 계층에서 필요한 것. 로컬 파일이나 앱 호출은 네트워크를 안 거치므로 포트 개념 자체가 없음
─────────────────────────────────────────────────