www.naver.com과 www.naver.com/은 과연 같은 주소일까?
아마 사람들은 이 두 주소의 차이점을 크게 궁금해하지 않고 살아가고 있을 것이다.
이렇게 URL 맨 마지막에 붙는 슬래시를 트레일링 슬래시(Trailing Slash)라고 부른다.
이 트레일링 슬래시는 해당 URL이 파일의 주소를 나타내는지, 아니면 디렉터리의 주소를 나타내는지를 표시하기 위해 사용된다.
- 트레일링 슬래시가 사용된 경우: 해당 URL은 디렉터리의 주소를 나타낸다.
- 트레일링 슬래시가 사용되지 않은 경우: 해당 URL은 파일의 주소를 나타낸다.
사실 우리는 www.naver.com을 입력하여 네이버에 들어가지만 브라우저에서 자동으로 맨 마지막에 트레일링 슬래시를 붙여서 www.naver.com/으로 리다이렉트 시켜준다. 우리 몰래 해주기 때문에 우리가 모르고 있는 것 뿐...
일반적으로 URL은 디렉터리를 나타내야 한다. 왜? 웹페이지의 URL은 파일을 나타내는 게 아니라 디렉터리를 나타내야 해당 URL의 하위 path를 나타낼 수 있기 때문... 파일을 직접적으로 요청하는 경우는 이미지 파일을 구할 때 빼고는 아마 거의 없을 것이다.
그래서 장고에서도 이와 비슷한 기능을 제공하고 있다. 장고 프로그램에서 url.py을 작성할 때에는 일반적으로 맨 끝에 트레일링 슬래시를 붙여줘야 한다. 왜냐하면 장고는 기본적으로 트레일링 슬래시가 없이 요청이 들어오면, 해당 요청 url의 끝에 자동으로 트레일링 슬래시를 붙여주기 때문이다(APPEND_SLASH 기능).
이 APPEND_SLASH 기능 덕분에 우리는 요청 URL에 트레일링 슬래시가 있냐 없냐를 따질 필요 없이 간단하게 트레일링 슬래시가 붙은 URL로 리다이렉트해서 해당 URL에서만 요청을 받고 응답해주기만 하면 된다. 그런데 APPEND_SLASH 기능을 꺼버린다면? 이제 요청이 들어올 때마다 요청 URL의 트레일링 슬래시 유무를 판단해서 각각의 경우를 모두 url.py에 작성해 줘야 한다. 굉장히 번거로워 지는 것... 스프링부트는 아직 잘 모르겠다. 알게 되면 추가하는 걸로...
지금까지 장고에서 url.py를 작성할 때 왜 마지막에 슬래시를 항상 붙여야 했는지 모른 채 그냥 써왔었는데, 이런 깊은 뜻이 있다는 사실을 이제서야 깨닫는다...
'간단 정리 > 웹 개발' 카테고리의 다른 글
[간단 정리] HTTPS의 암호화 방식 (0) | 2025.02.07 |
---|---|
[간단 정리] Query String과 Path Variable (0) | 2025.02.06 |