Tại sao các tiện ích mở rộng thường bị ẩn trên URL?


Câu trả lời:


29

Có một số lý do để xóa tiện ích mở rộng khỏi URL:

  • Để làm cho các URL trông sạch hơn
  • Để làm cho URL dễ nhập hơn
  • Để làm cho URL dễ nhớ hơn
  • Để làm cho URL thân thiện hơn với từ khóa SEO
  • Để có thể thay đổi công nghệ - nếu bạn muốn chuyển trang web của mình từ công nghệ này sang công nghệ khác, cách dễ nhất là không cần người dùng thậm chí không biết liệu có tiện ích mở rộng nào trên URL không

Hãy nhớ rằng nhiều trang web được tạo bởi hệ thống quản lý nội dung (CMS) sẽ khiến các URL trông như thế này : /index.php?page=this-is-the-widget-page. Điều đó đặc biệt xấu xí và có nhiều hành trình hơn là chỉ là một phần mở rộng. Viết lại để loại bỏ index.php?page=làm cho nó tốt hơn nhiều.

Phần mở rộng không cần thiết trên web vì máy chủ gửi loại tài liệu dưới dạng tiêu đề. Các trang web được phục vụ như text/html, hình ảnh như image/pnghoặc image/jpeg. Điều này cho phép các trình duyệt biết cách hiển thị nội dung mà không cần sử dụng tiện ích mở rộng để tìm ra rằng URL chứa văn bản, HTML, PDF hoặc hình ảnh (để biết thêm thông tin, hãy xem bài viết về loại phương tiện Internet của Wikipedia ).

Một số quản trị web chọn sử dụng tiện ích mở rộng trên URL phù hợp với loại nội dung này. Vì vậy, bất kỳ text/htmltài liệu nào cũng sẽ có .htmlphần mở rộng và bất kỳ image/pngtài liệu nào cũng sẽ có .pngphần mở rộng. Điều đó có thể giúp đỡ khi các URL được lưu vào hệ thống tệp nơi dữ liệu meta về loại nội dung của chúng bị mất. Trong hầu hết các hệ thống tệp, chương trình mở tệp được chọn bởi tiện ích mở rộng. Vì vậy, ngay cả khi một trang được PHP phục vụ, một số quản trị web sẽ xóa .phpphần mở rộng và một số thay thế nó bằng .html.

Ngoài ra còn có câu hỏi là liệu URL có thể kết thúc tốt hơn trong dấu gạch chéo ( /) hay không khi chúng không có phần mở rộng có nhiều thảo luận về Stack Overflow.


11
Trong một số khung (ví dụ: MVC), URL không xác định tệp, do đó không có phần mở rộng để ẩn.
Henrik Ripa

6

Tất cả các máy chủ web có một hoặc nhiều "tệp mặc định". Đó là tệp sẽ được hiển thị bất cứ khi nào khách truy cập truy cập vào một URL kết thúc bằng dấu gạch chéo /, tức là một thư mục.

Nếu tên tệp mặc định trên máy chủ web của bạn index.phpvà khách truy cập truy cập www.example.com/pagename/, họ thực sự đang truy cập www.example.com/pagename/index.php.

Nếu không có dấu vết /, máy chủ web có thể chỉ cần viết lại URL để xóa URL, vì nó không cần thiết. Trang web này, trên thực tế, làm điều đó.


2
Tôi không chắc câu hỏi là "như thế nào" mà là "tại sao". Patrik câu trả lời của bạn là hoàn toàn chính xác về cách thức. Tuy nhiên, Stephen đã trả lời "tại sao"
Brandt Solovij

4

Đây là loại lược đồ URI mát mẻ mà tôi nhắm đến trên trang web cá nhân của riêng tôi.

(! Và có lẽ nhiều hơn nữa nhà thiết kế web / phát triển quá) Cá nhân, lý do mà tôi bắt đầu làm như vậy là sau khi đọc bài báo “URI mát không thay đổi” - tài liệu này được viết bởi cha đẻ của World Wide Web, Tim Berners -Lee.

Trong bài viết nổi tiếng của Tim Berners-Lee, về cơ bản, ông đã nêu ra những lý do tương tự mà Stephen Ostermiller có trong câu trả lời tuyệt vời cho câu hỏi này .

Để đưa ra câu trả lời cụ thể hơn cho câu hỏi chính của bạn, tại sao các tiện ích mở rộng bị ẩn trong URL?, Vâng, tôi sẽ nói rằng những lý do chính đối với tôi là:

1. Để chứng minh URI trong tương lai:

Ví dụ, tại thời điểm đó, nó có vẻ như là một ý tưởng tốt để sử dụng URI như: http://www.example.com/page.pl trong đó việc tăng .plcường tập tin cho tập lệnh Perl. Tuy nhiên, hầu hết các nhà phát triển web sử dụng ASP.NET hoặc PHP cho kịch bản phụ trợ, vì vậy , ngày nay , http://www.example.com/page.php nghe có vẻ là một ý tưởng tốt hơn, cuối cùng PHP và ASP / ASP.net sẽ trở nên lỗi thời. Vì vậy, một ý tưởng tốt hơn là chỉ cần loại bỏ phần mở rộng hoàn toàn.

2. Khả năng đọc và ghi nhớ:

Sẽ dễ dàng hơn nhiều khi một URI mát mẻ của URI được truyền cho mọi người bằng lời nói, trên giấy (ví dụ: quảng cáo, danh thiếp, v.v.), chưa kể dễ nhớ hơn.

3. Hack Hackable *

Mặc dù tôi nói rằng đại đa số người dùng ngày nay có thể đi qua một công cụ tìm kiếm cho tất cả mọi thứ - tôi thậm chí đã thấy những người sẽ vào thanh địa chỉ và gõ www.google.com, sau đó sử dụng Google để nhập theo nghĩa đen www.ebay.com! Nhưng, tôi nghĩ rằng nếu tôi có một trang web dựa trên đa phương tiện, URI http://www.example.com/videogợi ý rằng phần âm nhạc có thể được tìm thấy trong URI http://www.example.com/audio, v.v. (Tôi vẫn sử dụng thanh địa chỉ để truy cập các trang web - Tôi khá là trường học cũ về điều đó!)

* (Ồ! Có thể Hack Hack ngay lập tức - từ đó có tồn tại không?! Chà, bây giờ thì có !) :-)

4. ** Thẩm mỹ: Để làm cho chúng trông đẹp hơn! (Đổ lỗi cho OCD của tôi!)

Tuy nhiên, tôi đã nhận thấy bằng cách đọc qua các trang web khác nhau liên quan đến SEO, rằng rất nhiều webmasers thực sự nối thêm phần mở rộng tệp vào URI động, ví dụ:

URI thực tế có thể là: http://www.example.com/article

Tuy nhiên, quản trị trang web sẽ thực hiện viết lại để làm cho URI Giao diện trông tĩnh, chẳng hạn như: http://www.example.com/article.html

Logic đằng sau điều này là về cơ bản, một công cụ tìm kiếm sẽ chỉ định thứ hạng cao hơn cho các trang tĩnh (rõ ràng là ít có khả năng thay đổi). (Mặc dù tôi không chính xác là một chuyên gia về SEO, nhưng cá nhân tôi không tự mình mua ý tưởng này - tôi đoán rằng với những suy nghĩ đằng sau thuật toán của Google và Bing, sẽ mất nhiều hơn một phần mở rộng tệp giả mạo con đường của bạn vào vị trí cực SERP!)

Để biết thêm thông tin về cách đặt tên URI, tôi khuyên bạn nên đọc các bài viết này:

Tim Berners-Lee:

Lời khuyên QA của W3C:

Brian Kelly (Tập trung vào Vương quốc Anh / UKOLN - Đại học Bath):

Hi vọng điêu nay co ich!


2

Tôi hoàn toàn đồng ý với tất cả các câu trả lời ở trên. Chỉ cần thêm rằng một trong những lý do tại sao các tiện ích mở rộng bị ẩn trong URL là để bảo mật. Nói một cách đơn giản, nếu bạn không để lộ tiện ích mở rộng trong URL, thật khó để tìm ra công nghệ mà ứng dụng đã được xây dựng. Vì vậy, giả sử một trang được tạo bằng PHP và phần mở rộng không bị ẩn, sau đó một hacker có thể tìm ra các lỗ hổng của PHP và sử dụng nó để thực thi một số hoạt động độc hại.


Tôi đồng ý với nhận xét của bạn, nhưng tôi nghĩ rằng việc sử dụng URI để làm xáo trộn công nghệ phụ trợ của bạn như một biện pháp bảo mật là vô ích. Thoạt nhìn, bạn đang che giấu công nghệ cụ thể được sử dụng. Thật không may, những người duy nhất này sẽ đến với trò lừa đảo là người dùng cuối; một số (nếu không phải hầu hết) trong số đó không biết URL là gì, hãy nói về ASP / PHP / vv. Vì không có cụm từ hay hơn, bạn thuộc dạng người rao giảng cho dàn hợp xướng.
Jordan Clark

1

Bạn có ẩn các tiện ích mở rộng trang của mình hay không, mọi người vẫn có thể biết bạn đã sử dụng công nghệ nào. Bằng cách sử dụng cURL, không thể có được công nghệ của bạn bằng cách tìm nạp thông tin tiêu đề.

curl -I -L rembatvideo.ga

Sau đó, bạn sẽ thấy một cái gì đó như công nghệ của bạn, yêu cầu bộ đệm, kết nối và nhiều hơn nữa.


0

Hoàn toàn đồng ý theo giải thích của "Stephen Ostermiller" nhưng tôi muốn đề cập đến thủ thuật đằng sau đó để che giấu việc mở rộng URL. Và để làm điều đó, bạn phải sử dụng quy tắc viết lại .htaccess , đây là kịch bản giúp bạn giải quyết:

Chuyển hướng .phpyêu cầu bên ngoài sang URL mở rộng

RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.