그것은 실제로 미학의 문제가 아니라 기술적 인 차이입니다. 디렉토리의 생각은 완전히 정확하고 거의 모든 것을 설명합니다. 해결해 봅시다 :
당신은 지금 석기 시대에 돌아 왔거나 정적 페이지 만 제공합니다
웹 서버에는 디렉토리 구조가 고정되어 있으며 이미지, html 등과 같은 정적 파일 만 있습니다. 서버 측 스크립트 나 그 밖의 어떤 것도 없습니다.
브라우저가 요청 /index.htm
하고 존재하며 클라이언트에게 전달됩니다. 나중에 당신은 DVD 영화 리뷰와 /dvd/
디렉토리 에 그들 각각에 대한 html 페이지를 많이 가지고 있습니다 . 이제 누군가 요청 /dvd/adams_apples.htm
하고 거기에 있기 때문에 전달됩니다.
언젠가 누군가가 요청 하는 것입니다/dvd/
- 디렉토리 이며 서버는 무엇을 전달할 것인지 알아 내려고합니다. 액세스 제한 외에도 두 가지 가능성이 있습니다. 사용자에게 디렉토리 내용을 표시하거나 (이미 어딘가에 보았을 것입니다) 기본 파일을 표시합니다 (Apache에서는 다음과 같습니다).DirectoryIndex: sets the file that Apache will serve if a directory is requested.
)
지금까지는 이것이 예상되는 경우입니다.이미 처리의 차이점을 보여 주므로 들어가십시오.
오전 5시 34 분에 파일을 업로드하는 중에 실수가 발생했습니다.
(이것은 완전히 이해할 수 있습니다.) 따라서, 당신은 완전히 잘못된 것을했고 업로드 하지 않고 /dvd/the_big_lebowski.htm
파일을 dvd
(확장자없이)/
.
누군가 귀하의 /dvd/
디렉토리 목록을 북마크에 추가했습니다 (물론 그 멋진 목록을 만들고 항상 업데이트하고 싶지는 않았습니다)index.htm
사이트 ) 웹 사이트를 방문하고 있습니다. 디렉토리 내용이 모두 제공됩니다.
누군가 귀하의 목록을 듣고 입력 중 /dvd
입니다. 그리고 지금은 망했다. 서버는 DVD 디렉토리 목록 대신 해당 이름의 파일을 찾고 Big Lebowski 파일을 전달합니다.
따라서 해당 파일을 삭제하고 페이지를 다시로드하도록 지시합니다. 귀하의 서버는/dvd
파일을 찾지 만 사라졌습니다. 그런 다음 대부분의 서버는 해당 이름의 디렉토리가 있음을 확인하고 찾고 있던 것이 실제로 다른 곳임을 클라이언트에게 알려줍니다. 응답은 다음과 같습니다.
Status Code:301 Moved Permanently
와 Location: http://[...]/dvd/
그래서, 당신이 무엇 을 완전히 무시 다른 말하지 않는 한 - - 디렉토리 나 파일에 대해 서버는 같은 물건을 처리 할 수 있습니다 생각 "슬래시 여부"의 의미에 대해 당신을 위해 결정한다.
마지막으로이 응답을받은 후 클라이언트가로드 /dvd/
되고 모든 것이 정상입니다.
괜찮아? 아니.
"괜찮아"는 당신에게 충분하지 않습니다
모든 것이 전달되고 /index.php
처리 되는 동적 페이지 가 있습니다. 지금까지 모든 것이 잘 작동했지만 그 전체가 느리게 느껴지기 시작했습니다.
곧, /dvd/list
정확히 똑같이하고 있음을 알 수 있습니다. 리디렉션 /dvd/list/
은 내부적으로로 번역됩니다 index.php?controller=dvd&action=list
. 하나의 추가 요청-그러나 더 나쁜! customer/login
의 리디렉션 customer/login/
URL로 리디렉션합니다 customer/login/
. 당신은 가지고 결국 t 사용자 경험을 느리게 만드는 불필요한 HTTP 리디렉트 (= 추가 요청)의합니다.
: 대부분의 가능성이 너무 여기에 기본 디렉토리 인덱스가 index.php?controller=dvd
아니오 action
단순히 내부적으로 부하를 index.php?controller=dvd&action=list
.
요약:
파일 이 끝나면 파일이 될 /
수 없습니다 . 서버 추측이 없습니다.
슬래시 또는 슬래시는 완전히 다른 의미입니다. "슬래시 또는 슬래시 없음"에는 기술 / 자원 차이가 있으므로이를 알고이를 적절히 사용해야합니다. 서버 /dvd/index.htm
가 다음과 같은 말을 할 때 대부분로드 되거나 올바른 스크립트를로드 /dvd
하기 때문입니다. 어느 쪽이었을 까 /dvd/
.
실제로 슬래시 버전을 의미 하더라도 슬래시를 생략하면 추가 HTTP 요청 페널티가 발생합니다. 이는 항상 좋지 않으며 (모바일 대기 시간을 생각할 때) "예쁜 URL"보다 더 많은 가중치를 갖습니다. 특히 크롤러는 SEO가 생각하거나 믿고 싶어하는만큼 바보가 아닙니다.)