확장이 URL에 종종 숨겨지는 이유는 무엇입니까?


답변:


29

URL에서 확장을 제거해야하는 몇 가지 이유가 있습니다.

  • URL을 깔끔하게 보이게하려면
  • URL을 더 쉽게 입력 할 수 있도록
  • URL을보다 쉽게 ​​기억할 수 있도록
  • URL을보다 SEO 키워드 친화적으로 만들려면
  • 기술을 변경할 수 있도록-한 기술에서 다른 기술로 사이트를 이동하려는 경우 URL에 확장명이 없는지 사용자가 알지 못하는 가장 쉬운 방법입니다.

많은 사이트는 CMS (콘텐츠 관리 시스템)에 의해 생성되어 URL을 다음과 같이 표시합니다 /index.php?page=this-is-the-widget-page. 그것은 특히 추악하고 단순히 확장 기능보다 훨씬 더 무뚝뚝합니다. 제거하기 위해 다시 쓰는 index.php?page=것이 훨씬 좋습니다.

서버는 문서 유형을 헤더로 보내므로 웹에서 확장이 필요하지 않습니다. 웹 페이지는 text/html, 이미지는 image/png또는 으로 제공됩니다 image/jpeg. 이렇게하면 확장 프로그램을 사용하지 않고 URL에 텍스트, HTML, PDF 또는 이미지가 포함되어 있는지 확인하기 위해 브라우저에서 내용을 렌더링하는 방법을 알 수 있습니다 (자세한 내용은 Wikipedia 기사 인터넷 미디어 유형 참조 ).

일부 웹 마스터는이 콘텐츠 유형과 일치하는 URL에 확장을 사용하도록 선택합니다. 따라서 모든 text/html문서에는 .html확장자가 있고 모든 image/png문서에는 .png확장자가 있습니다. 이는 컨텐츠 유형에 대한 메타 데이터가 손실되는 파일 시스템에 URL을 저장할 때 도움이됩니다. 대부분의 파일 시스템에서 파일을 여는 프로그램은 확장자로 선택됩니다. 따라서 페이지가 PHP에 의해 제공 되더라도 일부 웹 마스터는 .php확장을 제거 하고 일부는로 대체합니다 .html.

또한 URL이/ 스택 오버플로에 대해 많은 논의가있는 확장명이없는 경우 후행 슬래시 ( )로 끝나는 URL이 더 좋은지에 대한 질문 이 있습니다 .


11
일부 프레임 워크 (예 : MVC)에서 URL은 파일을 식별하지 않으므로 숨길 확장자가 없습니다.
Henrik Ripa

6

모든 웹 서버에는 하나 이상의 "기본 파일"이 있습니다. 방문자가 슬래시 /(예 : 폴더)로 끝나는 URL로 갈 때마다 표시되는 파일입니다 .

웹 서버의 기본 파일 이름이 index.php이고 방문자가가는 www.example.com/pagename/경우 실제로 액세스하는 것 www.example.com/pagename/index.php입니다.

후행이 없으면 /웹 서버는 URL을 다시 작성하여 제거 할 것입니다. 필요하지 않기 때문입니다. 이 사이트는 실제로 그렇게합니다.


2
나는 그 질문이 "어떻게"가 아니라 "왜"인지 확신하지 못한다. Patrik 귀하의 답변은 방법에 대해 절대적으로 정확합니다. 스티븐은 그러나 "왜"
브란트 Solovij

4

이것은 내 개인 웹 사이트에서 목표로하는 "멋진"URI 체계의 유형입니다.

개인적으로, 내가 시작한 이유는 (그리고 더 많은 웹 디자이너 / 개발자도 가능할 것입니다!) “멋진 URI는 변하지 않습니다” 기사를 읽은 것이 었습니다. 이 문서는 월드 와이드 웹의 창립자 인 Tim Berners가 작성했습니다. -남자 이름.

Tim Berners-Lee의 유명한 기사에서 그는 기본적으로 Stephen Ostermiller 가이 질문 에 대한 탁월한 답변을 했던 것과 같은 이유를 설명합니다 .

'확장 프로그램이 URL에 숨겨져있는 이유는 무엇입니까?'라는 주요 질문에 대한보다 구체적인 답변을 제공하려면 다음과 같은 주된 이유는 다음과 같습니다.

1. URI를 미래에 대비하려면 :

예를 들어, Perl 스크립트의 파일 실행 http://www.example.com/page.pl 위치 인 URI와 같은 URI를 사용하는 것이 좋습니다 .pl. 전날하지만 그래서하지만 thesedays는, 대부분의 웹 개발자들은 백엔드 스크립팅에 대한 ASP.NET 또는 PHP를 사용하는 오늘날 , http://www.example.com/page.php 더 나은 아이디어 같은 소리가, 결국 PHP와 ASP / ASP.net은 구식이 될 것입니다. 따라서 확장 기능을 완전히 제거하는 것이 좋습니다.

2. 가독성 및 기억력 :

기억하기 쉽진 않지만 "쿨"URI를 종이 (예 : 광고, 명함 등)로 구두로 사람들에게 전달하는 것이 훨씬 쉽습니다.

3.“해킹 성” *

요즘 대다수의 사용자가 검색 엔진을 통해 모든 것을 검색한다고 할 수 있습니다. 주소 표시 줄에 입력 www.google.com한 다음 Google을 사용하여 문자 그대로 입력 하는 사람들도 보았습니다 www.ebay.com! 그러나 멀티미디어 기반 웹 사이트를 사용하는 경우 URI http://www.example.com/video는 음악 섹션이 URI http://www.example.com/audio등에서 찾을 수 있음을 암시한다고 생각합니다 . (나는 여전히 주소 표시 줄을 사용하여 웹 사이트로 이동합니다. 나는 그런 종류의 일에 대해 상당히“구식입니다!”

* (오 "Hackability"- 그 단어를 않습니다 심지어! 존재 글쎄, 그것은 않는 지금 !) :-)

4. ** 미학 : 더 예쁘게 보이도록! (내 OCD를 비난하십시오!)

그러나 다양한 SEO 관련 웹 사이트를 통해 많은 웹 마저가 실제로 파일 확장자를 동적 URI에 추가한다는 것을 알았습니다.

실제 URI는 다음과 같습니다. http://www.example.com/article

그러나 웹 마스터는 다음과 같이 URI를 "모양"정적으로 만들기 위해 다시 쓰기를 수행합니다. http://www.example.com/article.html

이것의 논리는 기본적으로 검색 엔진이 정적 페이지에 더 높은 순위를 할당한다는 것입니다 (이는 변경 가능성이 낮음). (나는 SEO의 전문가는 아니지만 개인적으로이 아이디어를 직접 구매하지는 않습니다. Google 및 Bing의 알고리즘에 대한 생각이 있으면 가짜 파일 확장자보다 약간 더 많은 시간이 소요될 것이라고 생각합니다 SERP 극 위치에 당신의 방법을 사기!)

URI 이름 지정에 대한 자세한 내용은 다음 기사를 읽는 것이 좋습니다.

팀 버너스 리 :

W3C 품질 관리 팁 :

브라이언 켈리 (영국 웹 포커스 / UKOLN-University of Bath) :

이것이 도움이되기를 바랍니다!


2

위의 모든 답변에 전적으로 동의합니다. 확장 기능이 URL에 숨겨져있는 이유 중 하나를 추가하는 것만으로도 보안에 있습니다. 간단히 말해서 URL에 확장을 노출시키지 않으면 응용 프로그램이 작성된 기술을 파악하기가 거의 어렵지 않습니다. PHP로 만든 페이지를 말하고 확장 프로그램이 숨겨져 있지 않다면 해커가 잠재적으로 PHP의 취약점을 파악하여 악의적 인 활동을 실행할 수 있습니다.


귀하의 의견에 동의하지만 백엔드 기술을 난독 처리하기 위해 URI를 사용하는 것은 무의미하다고 생각합니다. 언뜻보기에, 당신은 되어 사용되는 특정 기술을 숨기고. 불행하게도, 이것이 "만약"이 사람 만이 최종 사용자입니다. ASP / PHP 등은 말할 것도없이 URL이 무엇인지 전혀 모르는 일부 (대부분은 아니더라도)입니다. 더 좋은 구절이 없다면, 당신은 일종의“합창단에게 설교”입니다.
Jordan Clark

1

페이지 확장명을 숨기거나 숨기지 않아도 사람들은 어떤 기술을 사용했는지 알 수 있습니다. cURL을 사용하면 헤더 정보를 가져와 기술을 얻는 것이 불가능하지 않습니다.

curl -I -L rembatvideo.ga

그러면 기술, 캐시 요청, 연결 등과 같은 것이 나타납니다.


0

"Stephen Ostermiller"의 설명에 전적으로 동의하지만 URL 확장을 숨기려는 비결을 언급하고 싶습니다. 그리고 .htaccess 다시 쓰기 규칙 을 사용해야하기 때문에 여기에 도움이되는 스크립트가 있습니다.

외부 .php요청을 확장없는 URL로 리디렉션

RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.