브라우저에서 홈페이지 URL을 클릭 할 때 후행 슬래시가 자동으로 추가됩니까? 여부에 관계없이 홈페이지에있을 때마다

홈 페이지 링크 위로 마우스를 가져갈 때마다 (예 : http://www.example.com)브라우저의 상태 표시 줄에서 볼 수 있듯이) 홈 링크에 href 속성이 포함되어 있는지 여부에 항상 슬래시가 추가됨을 알기 때문에 이것을 묻습니다. 슬래시 여부에 관계없이 홈페이지에있을 때마다 표시되는 URL에 슬래시가 없습니다.

URL 표시 줄의 URL에 슬래시를 입력하려고했습니다. Firebug를 사용하면 사이트가 항상 200 OK 상태를 반환합니다. 여기 에이 기사 설명 하는 기사 에는 끝에 슬래시가 있으면 301 리디렉션이 방지됩니다. 그러나이 페이지 에서도 리디렉션 표시 되지 않습니다 .

슬래시를 추가하는 브라우저 기능 일 수 있습니까?



답변

예 . 기본 도메인 URL (예 : 홈페이지)을 요청할 때 모든 주류 브라우저는 HTTP 요청에 “슬래시”를 추가합니다 . 이것은 실제로 HTTP 요청을 유효하게하기 위해 필요합니다 http://example.com/.

GET / HTTP/1.1
Host: example.com

/첫 번째 줄에서 (슬래시)를 주목하십시오 -이것은 요청되는 URL입니다. 여기에 아무것도 없는 것은 유효하지 않습니다 . 에서 RFC 2616 :

절대 경로는 비워 둘 수 없습니다. 원래 URI에 존재하지 않는 경우 반드시 “/”(서버 루트)로 지정해야합니다.

브라우저가 서버에 보내는 HTTP 요청을 봐야합니다. “브라우저의 상태 표시 줄”에 표시되는 URL 또는 주소 표시 줄의 URL이 다를 수 있습니다. 사용자 친화적입니다. 요청에 슬래시가 있지만 Chrome은 상태 표시 줄에 슬래시를 추가 하지 않습니다 .

http://example.com브라우저 HTTP 요청을하기 전에 정정 하기 때문에 (슬래시 없음) 을 지정하면 301 경로 재 지정이 발생 하지 않습니다 .

경로 / 디렉토리가있는 경우 URL 끝에 슬래시를 추가하는 것과 다릅니다. 예. http://example.com/directory/. 귀하가 연결하는 기사는 모두 동일하게 취급되는 것으로 보이며 완전히 올바른 IMO 인 것으로 보이지 않습니다. 요청한 경우 http://example.com/directory(슬래시 없음) 브라우저는 슬래시를 추가하지 않으며 예, 대부분의 서버는 301로 리디렉션 http://example.com/directory/(슬래시)하지만 서버에 따라 다릅니다. 그것은 단순히 부서 질 수있었습니다! 예를 들어 Apache의 경우 이는 DirectorySlash로 설정 되는 지시문에 따라 다릅니다 on.