Django의 Trailing Slash [ 트레일링 슬래시 ]
URL 끝에 있는 슬래시를 트레일링 슬래시 (trailing slash)라고 한다.
도메인 끝에 붙은 슬래시는 그 유무에 따른 차이가 없습니다. ex) tistory.com or tistory.com/
하지만 도메인이 아닌 url에 트레일링 슬래시가 붙을 경우 서로 다른 곳을 가리키는 주소가 됩니다!
ex) index/test 와 index/test/ 는 서로 다른 곳!
이런 형태는 과거에는 이 슬래시가 '파일'과 '디렉토리'를 가리키고 있었기 때문입니다.
슬래시가 없는 주소는 '파일' , 슬래시가 붙은 주소는 '디렉터리'를 가리켰기 때문인데요.
현재에는 데이터를 데이터베이스에 저장하거나 가져오기 때문에 URL이 직접적으로 파일이나 디렉터리를 가리키지 않기 때문에 슬래시 유무를 하나로 일정한 형식으로 맞춰줄 필요가 있습니다.
그래서 Django에서는 기본적으로 트레일링 슬래시가 붙어 있지 않는 URL로 요청이 들어오면 해당 URL과 일치하는 URL이 있는지 보고, 없다면 슬래시를 붙인 URL로 다시 리디렉션 하는 설정이 기본으로 적용되어 있습니다.
그래서 Django의 URL패턴을 작성할 때 트레일링 슬래시를 붙여서 작성하는 것이 형식 유지 측면에서 좋습니다.
그러면 슬래시가 안붙은 URL로 요청이 들어올 경우 자동으로 슬래시가 붙은 URL로 연결되어 이동하기 때문입니다.
다른 URL로 이동하기 위한 URL을 적을 때 앞에 슬래시(/)가 있으면 도메인으로부터의 경로를 의미합니다.
# 현재 위치 index/tests/
<a href="/page1/">이동하기</a>
위와 같은 코드가 있을 경우 링크를 누르면 index.com/tests/page1 으로 이동하는 것이 아닌 index.com/page1
으로 이동하게 되는 것입니다.
다른 URL로 이동하기 위한 URL을 적을 때 앞에 슬래시(/)가 없으면 현재 URL 뒤에 이동하는 URL이 연결된 경로가 됩니다.
# 현재 위치 index/tests/
<a href="page1/">이동하기</a
위와 같은 코드가 있을 경우 링크를 누르면 index.com/tests -> index.com/tests/page1 으로 이동하게 됩니다.
'Study > Django' 카테고리의 다른 글
Django Validator / 장고 유효성 검증 / validator 추가하기 (0) | 2021.12.10 |
---|---|
Django Validator / 장고 유효성 검증 / 내장 Field 옵션 (0) | 2021.12.10 |
Django의 CSRF 방지 / CSRF / Cross-Site Request Forgery (0) | 2021.12.09 |
Django Model Form / 장고 모델 폼 / forms.ModelForm (0) | 2021.12.08 |
Django model DateTimeField 한국 시간으로 설정하기 (0) | 2021.12.07 |