Khi nào nên sử dụng HTTPS cho hoạt động phát triển cục bộ

Bạn có thể sử dụng http://localhost cho quá trình phát triển cục bộ hầu hết thời gian, ngoại trừ một số trường hợp đặc biệt. Bài đăng này giải thích thời điểm bạn cần chạy trang web phát triển cục bộ bằng HTTPS.

Xem thêm: Cách sử dụng HTTPS cho quá trình phát triển cục bộ.

Trong bài đăng này, các câu lệnh về localhost cũng hợp lệ đối với 127.0.0.1[::1] vì cả hai đều mô tả địa chỉ máy tính cục bộ, còn gọi là "địa chỉ vòng lặp". Ngoài ra, để đơn giản, số cổng không được chỉ định. Vì vậy, khi bạn thấy http://localhost, hãy đọc là http://localhost:{PORT} hoặc http://127.0.0.1:{PORT}.

Tóm tắt

Khi phát triển cục bộ, hãy sử dụng http://localhost theo mặc định. Service Worker, Web Authentication API và nhiều API khác sẽ hoạt động. Tuy nhiên, trong các trường hợp sau, bạn sẽ cần HTTPS cho quá trình phát triển cục bộ:

  • Gỡ lỗi các vấn đề về nội dung hỗn hợp
  • Sử dụng HTTP/2 trở lên
  • Sử dụng các thư viện hoặc API của bên thứ ba yêu cầu HTTPS
  • Sử dụng tên máy chủ tuỳ chỉnh

    Danh sách các trường hợp bạn cần sử dụng HTTPS cho quá trình phát triển cục bộ.
    Thời điểm sử dụng HTTPS cho quá trình phát triển cục bộ.

✨ Đây là tất cả những gì bạn cần biết. Nếu bạn muốn biết thêm thông tin chi tiết, hãy tiếp tục đọc!

Tại sao trang web phát triển của bạn phải hoạt động một cách an toàn

Để tránh gặp phải các vấn đề không mong muốn, bạn nên để trang web phát triển cục bộ hoạt động giống như trang web sản xuất của mình càng nhiều càng tốt. Vì vậy, nếu trang web phát hành công khai của bạn sử dụng HTTPS, bạn nên để trang web phát triển cục bộ hoạt động giống như một trang web HTTPS.

Sử dụng http://localhost theo mặc định

Trình duyệt xử lý http://localhost theo một cách đặc biệt: mặc dù là HTTP, nhưng hầu hết đều hoạt động giống như một trang web HTTPS.

Trên http://localhost, Service Worker, Sensor API, Authentication API, Payments và các tính năng khác yêu cầu một số đảm bảo về tính bảo mật được hỗ trợ và hoạt động giống hệt như trên một trang web HTTPS.

Thời điểm sử dụng HTTPS cho quá trình phát triển cục bộ

Bạn có thể gặp phải các trường hợp đặc biệt trong đó http://localhost không hoạt động giống như một trang web HTTPS hoặc bạn chỉ muốn sử dụng một tên trang web tuỳ chỉnh không phải là http://localhost.

Bạn cần sử dụng HTTPS cho quá trình phát triển cục bộ trong các trường hợp sau:

  • Bạn cần gỡ lỗi cục bộ một vấn đề chỉ xảy ra trên một trang web HTTPS chứ không phải trên một trang web HTTP, thậm chí không phải là http://localhost, chẳng hạn như vấn đề về nội dung hỗn hợp.
  • Bạn cần kiểm thử hoặc tái tạo cục bộ một hành vi dành riêng cho HTTP/2 trở lên. Ví dụ: nếu bạn cần kiểm thử hiệu suất tải trên HTTP/2 trở lên. HTTP/2 trở lên không an toàn không được hỗ trợ, thậm chí không phải trên localhost.
  • Bạn cần kiểm thử cục bộ các thư viện hoặc API của bên thứ ba yêu cầu HTTPS (ví dụ: OAuth).
  • Bạn không sử dụng localhost, mà sử dụng tên máy chủ tuỳ chỉnh cho quá trình phát triển cục bộ, ví dụ: mysite.example. Thông thường, điều này có nghĩa là bạn đã ghi đè tệp máy chủ cục bộ:

    Ảnh chụp màn hình của một thiết bị đầu cuối đang chỉnh sửa tệp máy chủ lưu trữ
    Chỉnh sửa tệp máy chủ để thêm tên máy chủ tuỳ chỉnh.

    Trong trường hợp này, Chrome, Edge, Safari và Firefox theo mặc định không coi mysite.example là an toàn, mặc dù đây là một trang web cục bộ. Vì vậy, trang web này sẽ không hoạt động giống như một trang web HTTPS.

  • Các trường hợp khác! Đây không phải là danh sách đầy đủ, nhưng nếu bạn gặp phải một trường hợp không có trong danh sách này, bạn sẽ biết: mọi thứ sẽ bị hỏng trên http://localhost hoặc trang web này sẽ không hoạt động giống như trang web phát hành công khai của bạn. 🙃

Trong tất cả các trường hợp này, bạn cần sử dụng HTTPS cho quá trình phát triển cục bộ.

Cách sử dụng HTTPS cho quá trình phát triển cục bộ

Nếu bạn cần sử dụng HTTPS cho quá trình phát triển cục bộ, hãy chuyển đến bài viết Cách sử dụng HTTPS cho quá trình phát triển cục bộ.

Mẹo nếu bạn đang sử dụng tên máy chủ tuỳ chỉnh

Nếu bạn đang sử dụng tên máy chủ tuỳ chỉnh, ví dụ: chỉnh sửa tệp máy chủ:

  • Đừng sử dụng tên máy chủ trần như mysite vì nếu có miền cấp cao nhất (TLD) có cùng tên (mysite), bạn sẽ gặp phải vấn đề. Và điều này không phải là không thể xảy ra: vào năm 2020, có hơn 1.500 TLD và danh sách này đang tăng lên. coffee, museum, travel và nhiều tên công ty lớn (có thể là cả công ty bạn đang làm việc!) là TLD. Xem danh sách đầy đủ tại đây.
  • Chỉ sử dụng các miền thuộc về bạn hoặc được dành riêng cho mục đích này. Nếu không có miền riêng, bạn có thể sử dụng test hoặc localhost (mysite.localhost). test không được xử lý đặc biệt trong trình duyệt, nhưng localhost thì có: Chrome và Edge hỗ trợ http://<name>.localhost ngay lập tức và sẽ hoạt động một cách an toàn khi localhost hoạt động. Hãy dùng thử: chạy bất kỳ trang web nào trên localhost và truy cập vào http://<whatever name you like>.localhost:<your port> trong Chrome hoặc Edge. Tính năng này có thể sớm được hỗ trợ trong Firefox và Safari. Lý do bạn có thể thực hiện việc này (có các miền con như mysite.localhost) là vì localhost không chỉ là tên máy chủ mà còn là một TLD đầy đủ, giống như com.

Tìm hiểu thêm

Xin chân thành cảm ơn tất cả những người đánh giá đã đóng góp và đưa ra ý kiến phản hồi, đặc biệt là Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood và Jake Archibald. 🙌

Hình ảnh chính của @moses_lee trên Unsplash, đã chỉnh sửa.