2011-01-12 2 views
2

오늘은 HTML 링크 나 이미지 링크에서 % 20의 공백을 인코딩 할 필요가 없어졌습니다. 예를 들어 [http://example.com/i/my house.jpg]에이 이미지가 있다고 가정합니다. 거기에 공간을 주목하십시오. html 코드에서 다음을 수행 할 수 있습니다.공간을 url로; 브라우저가 더 똑똑해 졌나요?

<img src="http://example.com/i/my house.jpg" alt="my house"> 

모든 현재 버전의 브라우저에서 작동합니다. 그러나 확실하지 않은 점은 브라우저가 URL을 요청하기 전에 URL을 인코딩하는지 또는 특정 서버가 공간이있는 경로로 올바른 작업을 수행하는지 여부입니다. (아파치)

부록 : 죄송합니다. 내 진짜 질문은 HTTP 프로토콜에 관한 것입니다. 나는 이것을 그대로두고 Answered라고 표시 할 것입니다. 여기에 새로운 질문이 게시되었습니다. does HTTP protocol require space be encoded in file path?

+0

PS URL에 인코딩 비율이 필요하다는 것을 알고 있습니다. 어쨌든, http 프로토콜이 GET 헤더 행의 파일 경로에 사용될 때 공백 문자에 대한 인코딩을 필요로하는지 궁금합니다. (텔넷으로 테스트 해 보았습니다 ...하지만 다른 헤더가 필요한지 잊어서 테스트를 중단했습니다) –

답변

7

브라우저가 수정합니다.

여전히 공간을 인코딩해야합니다. 사용하는 브라우저에서 작동하기 때문에 유효하지 않으며 모든 곳에서 작동한다는 것을 의미하지는 않습니다.

현재 인코딩해야 예약 문자와 다른 문자의 목록을 볼 수 있습니다 http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

RFC1738을 구체적를 :.

따라서, 단지 알파벳과 숫자, 특수 문자 "$ -_ + ! * '(), "및 예약 된 문자는 URL 내에서 인코딩되지 않고 인코딩되지 않은 문자로 사용될 수 있습니다.

RFC2396는 RFC1738에 걸쳐 발생 및 URL에 공간 사용에 강론 : URI가 이 전사 또는 조판 또는 때 중요한 공간 사라질 수 있습니다 볼품없는 공간이 도입 될 수 있기 때문에

공간 문자는 제외 처리 프로그램의 단어 - 의 처리를받습니다. 공백은 많은 컨텍스트에서 URI를 구분하는데도 사용됩니다.

+0

HTTP 프로토콜은 파일 이름의 공간 인코딩을 필요로합니까? 예 : "GET/some thing.html HTTP/1.1"에서. –

+1

@Xah Lee : HTTP는 파일 이름에 대해 아무것도 모릅니다. URL에 대해서만 알고 있습니다. '/ some thing.html'은 서버의 파일 이름 (일부분) 일 수도 있지만 구현 세부 사항입니다. HTTP는 공백이있는 URL을 보게됩니다. % 20 (인코딩 된 공백 문자)은 웹 서버가 기록하기 전에 디코딩되었을 수 있습니다. –

+0

@Xah Lee, 나는 RFC가 꽤 명확하다고 생각한다. RFC2616은 특히 URI 서식 지정을 위해 RFC2396을 참조합니다. RFC2396 RFC1738, 내가 내 대답에 대한 참조가 발생합니다. RFC2396의 2.4.3 부분 (http://www.rfc-editor.org/rfc/rfc2396.txt)에 따르면 "공백 문자는 URI가 복사되거나 조판 될 때 중요한 공간이 사라질 수 있고 중요하지 않은 공백이 삽입 될 수 있으므로 제외됩니다 또는 워드 프로세싱 프로그램의 처리를받습니다. 공백 문자는 많은 문맥에서 URI를 구분하는 데에도 사용됩니다. " 그렇습니다. 공간의 인코딩이 필요합니다. – Brad

관련 문제