2012-01-21 34 views
29

Có lý do nào chúng tôi bao gồm giao thức http/https trên thuộc tính của liên kết href không?html - liên kết không có giao thức http

Nó sẽ là tốt để chỉ để lại nó đi:

<a href="example.com">my site</a> 
+0

Cảm ơn @Gareth lời giải thích tốt! –

+7

Phần URL tạo liên kết ra bên ngoài là // không phải giao thức. Giao thức chỉ cho máy tính biết thiết bị nào sử dụng trên liên kết. Bạn có thể liên kết đến "http://example.com", https://example.com, ftp://example.com hoặc chỉ //example.com. Sau đó, bạn nên sử dụng giao thức của máy khách hiện tại (thường là trình duyệt http/https, nhưng có thể là ứng dụng email, v.v.) và cực kỳ hữu ích khi bạn xem xét một trang web có cả giao thức http và https đang chạy. –

Trả lời

84

Việc bao gồm phần “http:” hoặc “https:” một phần chỉ là vấn đề truyền thống, một phần là vấn đề thực sự chỉ định giao thức. Nếu nó được mặc định, giao thức của trang hiện tại được sử dụng; ví dụ: //www.example.com trở thành http://www.example.com hoặc https://www.example.com tùy thuộc vào URL của trang giới thiệu. Nếu một trang web được lưu trên một đĩa cục bộ và sau đó được mở từ đó, nó không có giao thức (chỉ là tệp: giao thức giả), vì vậy các URL như //www.example.com sẽ không hoạt động; do đó, đây là một lý do để bao gồm phần “http:” hoặc “https:”.

Bỏ qua phần “//” hoàn toàn khác hoàn toàn, chuyển URL thành URL tương đối sẽ được hiểu là có liên quan đến URL cơ sở hiện tại.

Lý do tại sao www.example.com hoạt động khi được nhập hoặc dán trên dòng địa chỉ của trình duyệt là các URL tương đối sẽ không có ý nghĩa ở đó (vì không có URL cơ sở nào liên quan đến), vì vậy nhà cung cấp trình duyệt đã quyết định ngụ ý “ tiền tố http: // ”ở đó.

-1

Without http, nó sẽ mất các URL có liên quan. Nếu bạn phải trỏ đến một URL bên ngoài, cần phải chỉ định http, nếu không nó sẽ cố gắng đưa bạn đến một tài nguyên cục bộ.

Vì vậy, nó phụ thuộc vào nơi bạn muốn trỏ đến.

+6

Sai. Máy chủ có thể được chỉ định mà không có giao thức bằng cách bắt đầu bằng "//" như trong: //www.example.com/blah/blah " – NVRAM

+0

hanks vì chỉ ra rằng liên kết được coi là đường dẫn tương đối không có http (hoặc //) như @NVRAM đã chỉ ra). Tôi đã có thể giải quyết vấn đề của mình bằng cách kiểm tra url và chèn "//" nếu nó không chứa "http". Điều này làm việc tuyệt vời. Cám ơn hai bạn –

1

URL trong href không bị giới hạn ở các tài liệu HTTP. Chúng hỗ trợ tất cả các giao thức được hỗ trợ bởi trình duyệt- ftp, mailto, tệp, v.v.

Ngoài ra, bạn có thể đặt trước tên URL bằng '#', để liên kết đến một id html trong nội bộ trang. Bạn chỉ có thể cung cấp tên hoặc đường dẫn thư mục mà không có giao thức, sẽ được coi là URL tương đối.

Các vấn đề liên quan