https://github.com/lhoju0158

개발 끄적끄적

[Network + Spring] URL 관련

lhoju0158 2025. 8. 19. 18:44

지난번 URL 관련 에러가 발생했었다. Network 공부 하던 중 원인을 알 수 있어서 정리한다.

 

0. URL란

브라우저가 정보를 찾는데 필요한 리소스의 위치를 가리킨다. URL를 이용해서 수십억개의 리소스를 찾고, 공유할 수 있다. 

 

1. 안전한 전송

정보가 유실될 위험 없이 URL을 전송할 수 있다는 것을 의미한다. 이를 위해서 사용할 수 있는 알파벳과 URL의 인코딩 규칙이 있다.

 

2. URL 규칙

URL은 기본적으로 ASCII를 따른다. 그러나 최근엔 다른 나라 언어도 사용되기에, URL 설계자들은 URL에 이스케이프 문자열을 쓸 수 있게 설계했다. 이스케이프 문자열은 ASCII에서 사용이 금지된 문자들로, 특정 문자나 데이터를 인코딩할 수 있게 함으로써 이동성과 완성도를 높일 수 있다. 

 

안전하지 않은 문자를 퍼센티지 기호로 시작해, ASCII 코드로 표현되는 두 개의 16진수 숫자로 이루어진 이스케이프 문자로 바꾼다. 

 

몇몇 문자는 URL 내에서 예약되어 있다. 만일 URl에서 예약된 문자들이 원래 목적이 아닌 다른 용도로 사용되려면 그 전에 반드시 인코딩이 되어야 한다. 

 

전송 프로토콜에선 별 문제가 안될수도 있지만, 개발자들은 안전하지 않은 문자를 인코딩해야한다. URL의 원형을 유지하기 위해서.

 

3. 출처

HTTP 완벽 가이드