URL
Uniform Resource Locator.
— 국제 IETF 표준 설계 사양서에서 정의하는, 컴퓨터 네트워크 상에서 리소스를 찾아내기 위한 통합 형태 주소 표기법 정의
인터넷 정보 은하계를 정교하게 비행하며 원하는 목적지 정거장에 단 0.1초 만에 순간 이동해 주는 초고속 이정표 포탈. 하지만 끝자락에 사소한 오타 한 자[/]를 잘못 덧붙이거나 슬러시를 빠뜨려 전송하면 자비 없이 404 Not Found 에러 장벽을 뿜어대며 문을 걸어 잠그는 예민한 주소(...)
1. 개요
유니폼 리소스 로케이터(Uniform Resource Locator)의 약자로, 광활한 글로벌 인터넷 가상 영토 공간 속에 존재하는 특정 웹 문서, 이미지, 비동기 API 엔드포인트 등의 디지털 리소스 자원이 위치한 표준화된 정적·동적 주소 체계를 일컫는다. 팀 버너스리가 웹의 3대 기둥(HTTP, HTML, URL) 중 하나로 세상에 공개했다.
2. 단 한 줄 주소 속에 숨겨진 완벽한 5대 레이아웃 분할
우리가 무심코 주소창에 치는 https://example.com:8080/users/profile?id=7#intro 한 줄 안에는, 전산학의 정교한 네트워크 기획 설계도가 다섯 개의 구역으로 엄격히 분할되어 있다.
- 프로토콜 (Scheme):
https://부분이다. 이 목적지로 갈 때 어떤 안전 통신 자물쇠 가이드를 동원할지 규정한다. - 도메인 (Host):
example.com부분이다. 숫자로 된 복잡한 IP 주소 대신 인간이 식별하기 쉽게 작명한 가상의 도메인 주소 등대 표기이다. - 포트 (Port):
:8080부분이다. 이 도메인 컴퓨터 안에서 돌아가는 수많은 프로그램 중 몇 번 통로 구멍으로 패킷을 집어넣을지 선포한다. 보통 웹 표준인 80번(HTTP)이나 443번(HTTPS)은 은근슬쩍 생략되어 작동한다. - 경로 (Path):
/users/profile부분이다. 서버 컴퓨터 내의 폴더 계층 구조를 따라가 원하는 알맹이 데이터의 디렉토리에 안착하는 이정표이다. - 쿼리 파라미터 (Query String):
?id=7부분이다. 물음표 뒤에 키-값 쌍을 이어 붙여 서버에게 '프로필 페이지를 보여주되, 특히 7번 ID 회원 데이터로 정밀 가공해서 가져와라' 하고 디테일 옵션을 주문 조율하는 동적 변수 영역이다.(...)
3. 관련 밈 및 드립
3.1. 인코딩 깨짐과 퍼센트 떡칠의 한글 저주
한글 주소가 적힌 URL을 복사해서 메모장이나 슬랙 대화창에 붙여 넣는 순간, 주소가 온데간데없이 사라지고 %E2%AC%A4%EB%B2%84... 같은 기괴한 외계어 퍼센트 기호 수백 개로 도배되어 폭사하는 기형적인 현상이다. URL 표준 규격은 오직 ASCII 영문자와 숫자, 일부 특수문자만 전송되도록 고대 설계되었기 때문에, 한글 같은 유니코드 문자는 강제로 영문 헥사 코드로 변환 인코딩(URL Encoding)하는 우회 수정을 단행하기 때문에 발발하는 웃픈 촌극이다.
4. 여담
- URL과 URI의 영원한 면접 낚시: 주니어들이 면접장에 들어가면 단골로 털리는 'URL과 URI의 경계'이다. 쉽게 말해 URI(Uniform Resource Identifier)가 인터넷 자원 식별 전체를 뜻하는 가장 거대한 상위 개념이며, 그 식별자 중 '자원이 위치한 경로 주소'를 표현하는 하위 분파가 바로 URL이다. 즉 모든 URL은 URI이지만, 모든 URI가 URL인 것은 아니다.
- 앵커(Anchor)의 무음 속 비행: URL 맨 끝에 붙는
#intro같은 해시 기호 영역은 프래그먼트 앵커(Fragment Anchor)라 불린다. 이 기호 뒤의 텍스트 정보는 브라우저가 화면 스크롤 위치를 조작하는 용도로 독점 사용하기 때문에, 서버로 요청을 보낼 때 패킷에 실어 보내지 않고 브라우저가 소리 소문 없이 도려내 삼켜버리는 독특한 성격을 지녔다. - URL 단축기(Shortener)의 마법: 긴 한글이나 복잡한 쿼리가 달린 URL을 단 몇 글자짜리 짧은 단축 URL(
bit.ly/...)로 바꿔주는 마법 뒤에는 백엔드의 간단한301/302 Redirect데이터베이스 연산이 돌아가고 있다. 단축 서버로 요청이 유입되는 순간 실제 긴 URL을 DB에서 조회해 '그쪽으로 이사 가라' 하고 헤더를 태워 순식간에 토스해 주는 방식이다.