HTTP và HTTPS

LAMP Sep 30, 2020
Ảnh mượn trên mạng

Hello các babe, tôi đã trở lại và bài này cố gắng viết ngắn hơn bài trước. Lần này tôi xin viết về một chủ đề mà ai cũng biết đấy là chủ đề gì.

Trước khi tôi biết lập trình mà bắt tôi đi so sánh HTTPHTTPS thì 96,69% tôi sẽ trả lời HTTPS là số nhiều của HTTP. Không tin thì các bạn đi hỏi ai đó không biết mà xem không lại bảo tôi nói phét -.-

Vậy HTTPHTTPS là gì? Chúng khác nhau ở điểm nào? Sau đây tôi sẽ giúp các bạn trả lời 2 câu hỏi này nhé.

HTTP là tên viết tắt của HyperText Transfer Protocol (hay theo tiếng Việt có dấu là Giao thức truyền tải siêu văn bản) - một giao thức cơ bản dùng cho World Wide Web (www - wờ wai wép) để truyền tải dữ liệu dưới dạng văn bản, hình ảnh, audio, video từ Web Server đến các Web Browsers và ngược lại.

HTTPS là tên viết tắt của HyperText Transfer Protocol Secure (hay là Giao thức truyền tải siêu văn bản an toàn) - là giao thức kết hợp giữa HTTP và giao thức bảo mật SSL (Secure Sockets Layer) hay TLS (Transport Layer Security) cho phép trao đổi thông tin một cách bảo mật trên internet.

Trên đây là định nghĩa nên đọc hơi khó hiểu, nhưng các bạn có thể hiểu nôm na như thế này. Các bạn tưởng tượng HTTPS như 1 người mặc đầy đủ quần áo + áo chống đạn, còn HTTP như 1 người không mặc gì. Easy phải không (^.^)

Hai giao thức này được sử dụng cho mô hình Client - Server (Client gửi 1 request lên server rồi chờ server xử lý và trả về kết quả). Sau đây và các step về quá trình giao tiếp giữa client và server thông qua HTTPS:

  1. Client gửi request tới 1 trang có bảo mật (đường dẫn bắt đầu bằng https://)
  2. Server gửi lại cho client certificate của nó
  3. Client (trình duyệt web) tiến hành xác thực certificate này bằng cách kiểm tra (verify) tính hợp lệ của chứng thư số của CA (Certification Authority) được kèm theo certificate.
    • Giả sử certificate đã được xác thực và còn hạn sử dụng hoặc client vẫn cố tình truy cập mặc dù Web browser đã cảnh báo rằng không thể tin cậy được certificate này (do là dạng self-signed SSL certificate hoặc certificate hết hiệu lực, thông tin trong certificate không đúng) thì mới xảy ra bước 4 sau.
  4. Client tự tạo ra ngẫu nhiên một symmetric encryption key (hay session key), rồi sử dụng public key (lấy trong certificate) để mã hóa session key này và gửi về cho server.
  5. Server sử dụng private key (tương ứng với public key trong certificate ở trên) để giải mã ra session key ở trên.
  6. Sau đó, cả server và client đều sử dụng session key đó để mã hóa/giải mã các thông điệp trong suốt phiên truyền thông.

Lưu ý: HTTP sử dụng port 80, HTTPS sử dụng port 443 (do port này hỗ trợ mã hóa kết nối từ client đến server)

Tổng kết

HTTPS là giao thức truyền tải siêu văn bản và nội dung truyền tải được mã hóa nên an toàn hơn HTTP.

Bài viết này có 1 số keywords sẽ được bất mí trong những phần sau (Client - Server, Port, World Wide Web, SSL/TLS,...)

Cuối cùng, bài viết này có tham khảo link sau: https://vi.wikipedia.org/wiki/HTTPS

CẢM ƠN CÁC BẠN ĐÃ XEM - CHÚC MỘT NGÀY TỐT LÀNH

Tags

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.