Dấu gạch chéo có được tự động thêm vào khi nhấp vào URL trang chủ trong trình duyệt không?


17

Tôi hỏi điều này bởi vì bất cứ khi nào tôi di chuột qua một liên kết đến trang chủ (ví dụ: http://www.example.com)tôi nhận thấy rằng một dấu gạch chéo luôn được thêm vào (như được quan sát trên thanh trạng thái của trình duyệt) liệu liên kết trang chủ có chứa thuộc tính kết thúc bằng một dấu gạch chéo hoặc không. Nhưng bất cứ khi nào tôi ở trang chủ, URL trên màn hình sẽ không có dấu gạch chéo.

Tôi đã thử nhập một dấu gạch chéo vào URL trong thanh URL. Và với Fireorms được kích hoạt, tôi nhận thấy rằng trang web luôn trả về trạng thái 200 OK. Một bài báo ở đây thảo luận về trạng thái này rằng có một dấu gạch chéo ở cuối sẽ tránh được chuyển hướng 301. Nhưng tôi không thấy bất kỳ chuyển hướng, ngay cả trên này trang.

Đây có thể là một tính năng trình duyệt đang nối thêm dấu gạch chéo?


Đúng. Ví dụ, tôi nghĩ Opera che giấu dấu gạch chéo về phía trước (và đôi khi nó cũng ẩn giao thức khiến tôi phát điên lên!) ...
Matt

Chính xác câu hỏi ở đây là gì? (Hoặc điểm của câu hỏi.) Và trang web "bạn" đang đề cập là gì? Ví dụ: nếu bạn kiểm tra ngay tại đây với các quản trị web, bạn sẽ lưu ý rằng trong Firefox và Chrome (tôi không thực hiện một vòng kiểm tra đầy đủ), những gì bạn mô tả về một dấu gạch chéo được thêm vào sẽ không xảy ra. Nó thực sự có vẻ buộc phải loại bỏ dấu gạch chéo nếu bạn thử và thêm một dấu, cho vấn đề đó.
Su '

@Su ', tôi đang đề cập đến bất kỳ trang web và thanh trạng thái nào đề cập đến trang được hiển thị ở dưới cùng của bất kỳ trình duyệt nào và thanh URL đề cập đến thanh địa chỉ ở trên cùng. Xin lỗi nếu tôi đã gây ra sự nhầm lẫn cho bạn.
Câu hỏi tràn

2
@Matt Opera cũng ẩn chuỗi truy vấn (bit sau ?trong URL), IMO khá ngớ ngẩn.
DisgruntledGoat

Câu trả lời:


28

Có, tất cả các trình duyệt chính "nối một dấu gạch chéo" vào yêu cầu HTTP khi yêu cầu URL miền trống (ví dụ: trang chủ). Điều này thực sự cần thiết để làm cho yêu cầu HTTP hợp lệ, đó http://example.com/là:

GET / HTTP/1.1
Host: example.com

Lưu ý /(dấu gạch chéo) trong dòng đầu tiên - đây là URL đang được yêu cầu. Nó không hợp lệ để không có gì ở đây. Từ RFC 2616 :

Lưu ý rằng đường dẫn tuyệt đối không thể để trống; nếu không có trong URI gốc, thì nó PHẢI được đưa ra là "/" (gốc máy chủ).

Bạn cần xem xét yêu cầu HTTP mà trình duyệt đưa ra cho máy chủ. URL được hiển thị trong "thanh trạng thái của trình duyệt" hoặc thậm chí URL trong thanh địa chỉ có thể khác - thân thiện với người dùng hơn. Google Chrome không thêm dấu gạch chéo vào thanh trạng thái, mặc dù dấu gạch chéo có trong yêu cầu.

Không có chuyển hướng 301 xảy ra nếu bạn chỉ định http://example.com(không gạch chéo) vì trình duyệt sửa yêu cầu HTTP trước khi nó được thực hiện.

Lưu ý rằng điều này khác với dấu gạch chéo được thêm vào cuối URL khi có đường dẫn / thư mục. ví dụ. http://example.com/directory/. Bài viết bạn liên kết đến dường như đối xử với cả hai giống nhau và dường như không hoàn toàn chính xác IMO. Nếu bạn đã yêu cầu http://example.com/directory(không gạch chéo) thì trình duyệt sẽ không thêm dấu gạch chéo và có, hầu hết các máy chủ sẽ chuyển hướng tới http://example.com/directory/(dấu gạch chéo) - nhưng điều này phụ thuộc vào máy chủ; nó chỉ đơn giản là có thể phá vỡ! Chẳng hạn, trên Apache, điều này phụ thuộc vào lệnh DirectorySlashđược đặt thành on.


Để thêm vào câu trả lời, bất cứ khi nào bạn đang liên kết đến trang chủ của mình, hãy thêm dấu gạch chéo để tiết kiệm tài nguyên máy chủ.
Anagio

5
@Anagio Tôi không nghĩ bạn hiểu câu trả lời. Bạn hoàn toàn không lưu tài nguyên máy chủ vì không có chuyển hướng. Một miền có và không có dấu gạch chéo giống nhau 100%. Nói cách khác, hoàn toàn không có cách nào để trả về nội dung khác nhau cho mỗi nội dung (mà bạn có thể làm với URL thư mục).
DisgruntledGoat

1
@DisgruntledGoat nếu bạn thoát khỏi dấu gạch chéo và máy chủ chuyển hướng sau đó thêm dấu gạch chéo trong liên kết sẽ giúp máy chủ không phải tải lại trang. Đó là tất cả những gì tôi nhận được, để nói về cuộc trò chuyện chặt chém này để nghỉ ngơi Google có một bài viết tuyệt vời về nó googlewebmastercentral.blogspot.com/2010/04/ Thẻ
Anagio

5
@Anagio Bài viết đó là về dấu gạch chéo cho các thư mục , trong khi câu hỏi này chỉ nói về dấu gạch chéo trên tên miền . Như câu trả lời ở trên cho biết nó không có sự khác biệt, bởi vì một liên kết đến example.comhoặc example.com/cả hai đều yêu cầu chính xác cùng một yêu cầu đến máy chủ.
DisgruntledGoat

3
Càng vì trình duyệt sẽ "sửa" cái này.
unor
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.