2012-08-27 3 views
1

는 지금까지 내가 이해 등의 URL은 folowing 필드로 구성URL 본문 내에 http : //를 사용해도 괜찮습니까?

  • 프로토콜 (HTTP, HTTPS, FTP 등)
  • 사용자 이름
  • 사용자 암호
  • 호스트 주소 (AN IP 주소 또는 DNS FQDN) 서버 문서는 인수의
  • 설정을 뿌리 내부 문서에
  • 포트 (암시 할 수있다)
  • 경로 uments 및
  • 문서의 일부 (#)

protocol://user:[email protected]:port/path/document?arg1=val1&arg2=val2#part

하지만 난 그냥 사용하는 예를 만나는 값 "http : //"를 경로 부분의 내부를 : 리디렉션이있다 타겟 URL ("http : //"와 함께 완전한 형태로)을 자신의 사이트에 추가하는 서비스 (광고를 게재하고 트래픽을 위해 돈을 지불하는)를 제공합니다. 표준 관점에서 보면 괜찮은가? 아무것도 망가 뜨리지 않니? 일반적으로 나는 "//"이중 슬래시, 콜론 또는 유효한 URL 내부의 "#"를 만나기를 기대하지는 않지만 위의 예제에있는 장소에서.

답변

1

아니오, 표준적인 관점에서는 괜찮지 않습니다.

Section 3.3 Path Component in RFC-2396 당, 경로는 다음 문자를 포함 할 수 없습니다 -

"/", ";", "=", and "?"은 일반적으로 브라우저는 실제로 작동하는 이유는 HTTP 요청을하기 전에 이러한 잘못된 URI를 인코딩합니다.

+0

예, 올바르게 작성하려면 인코딩해야합니다. 그리고 실제로는 인코딩과 디코딩이 투명하게 처리되도록 임베디드 URL을 인수 값으로 지정하는 것이 좋습니다. –

관련 문제