STUDY/Python

Trailing slash 사용 | URL에 GET parameters를 사용할때는?

nicesugi 2023. 7. 31. 18:34

"Trailing slash"는 웹 URL의 끝에 위치한 슬래시(/)를 지칭한다.

"https://www.example.com/"에서 마지막에 있는 슬래시!

 

이것이 중요한 이유는 서버에 따라 URL의 마지막에 슬래시가 있는 경우와 없는 경우에 다르게 반응할 수 있고,

중복 컨텐츠로 간주하는 등등의 이유로 웹사이트 구축 시에는 URL 설계를 일관성 있게 유지하는 것이 중요합니다.

 

또한, 웹서버 설정이나 프로그래밍 언어에서 디렉토리 경로를 지정할 때도 trailing slash 중요한 역할을 합니다.

예를 들어, 파일시스템에서 trailing slash 디렉토리를 가리킵니다.

"/home/user/" "/home/user" 디렉토리를 가리키는 반면,

"/home/user" 파일이나 디렉토리 모두를 가리킬 있습니다 !

 

Django에서는 URL 디자인에 trailing slash를 사용하는 것을 권장합니다.

이러한 규칙의 이유는 임의의 웹 페이지에 대한 요청이 디렉토리를 가리키는 것으로 간주되어야 하기 때문이라고 함.

 

Django 프로젝트 설정에서 `APPEND_SLASH = True`로 설정할 경우

http://www.nicesugi.tistory.com/manage  웹 요청이 왔을때

Django는 자동으로 http://www.nicesugi.tistory.com/manage/   리다이렉션함

이는 웹 사이트에 대한 일관된 URL 체계를 제공하고, 불필요한 중복 콘텐츠 문제를 방지하는데 도움이 됨

 

그러나 RESTful API 디자인에서는 종종 trailing slash를 생략하기도 한다.

해당 리소스에 대한 '일련번호'로 끝나는 것이

http://example.com/items/1234/   보다는

http://example.com/items/1234    없는게 더 자연스럽게 보이기 때문인데,

 

결과적으로 trailing slash의 사용 여부는 선택이다.

첫번째 이미지의 urlpatterns은 trailing slash에 대한 일관성이 없어 보이니,

보완하기 위해 주석을 다는 것이 팀원들에게 혹은 후임에게 좋을 것 같다. (두번째 이미지 참고)

 

 

첫번째 이미지: trailing slash의 통일성이 없음
두번째 이미지: trailing slash이 없는 코드의 목적과 이유, 접속 가능형태를 기재

 

 

 

사실 이번 포스팅은 피드백으로 받은 내용으로, 

 

"office" 혹은 "office/" 접속시 "보고자하는 list를 눌러달라"는 사용자에 필요한 에러 메세지를 띄우고

params로 list의 값을 받아서 사용하고 있던 구문이 있었다.

작성자인 나는 당연시했던 부분이지만,

다른 사람(팀원 혹은 후임 등)이 나의 코드를 전체적으로 파악하는 데에는 불친절한 코드일 수 있겠구나 싶었다.

앞으로 이런 부분도 세심하게 신경써야 겠다.라고 생각하게 되어 포스팅을 하게 되었다.

반응형