Vòng đời của một yêu cầu HTTP
1. Client gửi yêu cầu
- Tạo yêu cầu HTTP: Client (thường là trình duyệt web) tạo một yêu cầu HTTP.
- Phương thức HTTP: GET, POST, v.v.
- Tài nguyên được yêu cầu: Ví dụ:
/index.html.
- Phiên bản giao thức: Chẳng hạn HTTP/1.1.
- Header và body: Bao gồm các header theo định dạng
key: value và phần thân thông điệp tùy chọn.
2. Tra cứu DNS
- Phân giải tên miền: Chuyển tên miền mà con người có thể đọc được (
www.example.com) thành địa chỉ IP (93.184.216.34).
- Truy vấn máy chủ DNS: Client gửi truy vấn đến máy chủ DNS để chuyển tên miền thành địa chỉ IP.
3. Bắt tay TCP
- Thiết lập kết nối TCP: Client thiết lập kết nối TCP với server.
- Bắt tay 3 bước:
- SYN: Client gửi yêu cầu kết nối.
- SYN-ACK: Server xác nhận yêu cầu.
- ACK: Client gửi phản hồi xác nhận.
4. Gửi yêu cầu HTTP
- Truyền yêu cầu HTTP: Khi kết nối TCP đã được thiết lập, client gửi yêu cầu HTTP thực tế.
5. Định tuyến gói tin qua Internet
- Truyền gói tin: Các gói dữ liệu được định tuyến đến server thông qua nhiều thiết bị mạng khác nhau.
- Vai trò của router: Router quyết định đường đi tối ưu cho các gói tin.
6. Server phản hồi
- Tạo phản hồi HTTP: Server xử lý yêu cầu HTTP và tạo phản hồi.
- Nội dung phản hồi:
- Giao thức: Phiên bản HTTP được sử dụng.
- Thông tin trạng thái: Mã trạng thái HTTP (ví dụ: 200, 404).
- Header phản hồi: Tương tự như header của yêu cầu.
- Body phản hồi: Nội dung được yêu cầu (ví dụ: trang HTML, dữ liệu JSON).
7. Render nội dung
- Xử lý phản hồi HTTP: Client nhận và xử lý phản hồi HTTP.
- Render trên trình duyệt: Trình duyệt phân tích HTML và render nội dung lên màn hình.
- Yêu cầu thêm tài nguyên: Yêu cầu thêm các tài nguyên như hình ảnh, CSS, JavaScript, v.v.
HTTPS = HTTP + mã hóa
Bắt tay TLS
- Bắt tay TLS: Client và server trao đổi khóa mã hóa và xác thực.
- Giao tiếp được mã hóa: Sau khi bắt tay TLS, client và server sử dụng HTTP để trao đổi các thông điệp đã được mã hóa.
Bắt tay TLS 1.3
- Quy trình được đơn giản hóa: TLS 1.3 cung cấp ít tùy chọn hơn nên đơn giản, an toàn và nhanh hơn.
- Các bước cốt lõi:
- Client Hello: Client gửi cho server bộ mã mã hóa và phiên bản TLS mà nó hỗ trợ.
- Server Hello: Server gửi cho client bộ mã mã hóa và phiên bản TLS mà nó đã chọn.
- Xác minh chứng chỉ: Client xác minh chứng chỉ SSL của server.
- Tạo pre-master secret: Client tạo pre-master secret và gửi cho server.
- Tạo session key: Client và server tạo session key.
- Giao tiếp an toàn: Sử dụng session key để giao tiếp bằng mã hóa đối xứng an toàn.
Ý kiến của GN⁺
- Hiểu về giao tiếp Internet: Nắm được các khái niệm cơ bản của HTTP và HTTPS sẽ giúp xây nền tảng vững chắc về truyền thông mạng.
- Tầm quan trọng của bảo mật: Việc nâng cao tính bảo mật của truyền dữ liệu thông qua HTTPS là rất quan trọng.
- Ưu điểm của TLS 1.3: Nên sử dụng TLS 1.3 vì đơn giản hơn, nhanh hơn và an toàn hơn.
- Áp dụng trong thực tế: Cần áp dụng HTTPS trong các dự án thực tế để tăng cường bảo mật.
- Học thêm: Có thể đạt được hiểu biết sâu hơn thông qua việc học thêm về các tầng mạng và giao thức.
1 bình luận
Ý kiến trên Hacker News