Scheme quyết định cổng
Bài học 39 trên 47 trong khóa học Mạng máy tính với terminal của Coddy.
http:// và https:// khác nhau nhiều hơn một ký tự. Scheme quyết định hai điều: dùng cổng mặc định nào, 80 hay 443, và có bắt đầu bắt tay TLS trước khi gửi dữ liệu hay không.
Quá trình bắt tay đó diễn ra đầu tiên, trước khi có bất kỳ dòng yêu cầu nào được gửi đi. Hai bên thống nhất về cách mã hóa và máy chủ trình chứng chỉ của mình. Chỉ sau đó, HTTP mà bạn biết mới được gửi đi bên trong kênh đã mã hóa.
Vậy nên, một cổng hoặc hỗ trợ TLS hoặc không. Nếu yêu cầu https:// từ một cổng HTTP thông thường, sẽ không có cách dự phòng nhẹ nhàng nào: quá trình bắt tay thất bại ngay lập tức và curl báo mã thoát 35, lỗi kết nối SSL.
Điều này đáng để nhận ra, vì trông như máy chủ đã ngừng hoạt động, trong khi nó vẫn đang phục vụ HTTP thuần qua một giao thức khác.
Thử thách
KhóGửi yêu cầu TLS đến máy chủ HTTP thông thường và xem nó từ chối.
- Phục vụ một thư mục trên cổng 9129 theo cách thông thường, tức là dùng HTTP thông thường
- Gửi yêu cầu đến
https://127.0.0.1:9129/và in ratls=theo sau là mã thoát của curl
Đầu ra dự kiến:
tls=3535 là mã của curl cho lỗi kết nối SSL.
Tự làm thử
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Mạng máy tính với terminal
5Tự xử lý HTTP
Cấu tạo của một yêu cầuPhương thức yêu cầuMã trạng tháiHeader phản hồiViết phản hồiÔn tập: kiến thức cơ bản về HTTP8HTTPS và TLS
Vì sao dùng HTTPSScheme quyết định cổngChứng chỉ và độ tin cậyKhi TLS gặp lỗiÔn tập: HTTPSTự luyện tập: Playground Terminal