Lịch sử hình thành và những cải tiến qua các version của HTTP

10:20 10/04/2023

HTTP đã phát triển ra sao từ version 1, 1.1, đến 2 và bây giờ là version 3? Hãy cùng tìm hiểu ngay nào!

HTTP là gì?

Http (HyperText Transfer Protocol) là giao thức truyền tải siêu văn bản được sử dụng trong www dùng để truyền tải dữ liệu giữa Web server đến các trình duyệt Web và ngược lại.

HTTP phát triển bắt đầu từ version 1, đến 1.1, đến 2, và bây giờ là version 3.

HTTP 1

HTTP version 1 ra đời 1996, được xây dựng dựa trên TCP (Transmission Control Protocol)

Bất kì mỗi request (yêu cầu) đến cùng một server (máy chủ) yêu cầu một kết nối TCP riêng lẻ.
  1. HTTP 1

HTTP version 1.1 sớm ra đời sau đó vào năm 1997 và giới thiệu cơ chế “keep-alive” cho phếp sử dụng lại kết nối TCP cho nhiều request khác nhau đến cùng một server.

Việc này đã giảm được độ trễ cho từng request do client (máy khách) không cần phải khởi tạo kết nối TCP “3-way handshake” (bắt tay 3 bước) cho mỗi request.

Ngoài ra HTTP 1.1 còn hỗ trợ HTTP pipeline, cho phép client có thể gửi nhiều request trước khi chờ response (phản hồi) từ server cho request trước đó. Nhưng yêu cầu response phải được nhận theo thứ tự request đã thực hiện. Do việc khó khăn trong việc kiểm soát vấn đề này nên sau đó tính năng này đã được loại bỏ. Thêm vào đó HTTP pipeline còn chịu ảnh hưởng từ vấn đề “head-of-line blocking. Tức là mỗi request sau cần phải đợi request trước đó hoàn thành, dẫn tới mọi request trên cùng một kết nối đều bị ảnh hưởng.

Để giữ cho việc loading performance (hiệu suất tải) ở mức chấp nhận được, các browser (trình duyệt) thường giữ nhiều connection đến cùng server, và thực hiện việc gửi request một cách song song.

  1. HTTP 2

Được phát hành vào năm 2015, giới thiệu HTTP streams (luồng), cho phép nhiều streams của một request có thể gửi đến cùng server trên duy nhất một kết nối TCP.

Không giống như HTTP 1.1 Pipeline, mỗi stream là độc lập với các streams khác và chúng không cần phải gửi và nhận theo thứ tự.

Nó giải quyết được vấn đề head-of-line blocking ở application layer (tầng ứng dụng), nhưng vẫn chưa giải quyết được vấn đề ở transport layer (tầng vận chuyển) với TCP.

HTTP 2 còn giới thiệu khả năng push (đẩy), cho phép server gửi cập nhật cho client bất kì khi nào có sự thay đổi dữ liệu từ server mà không yêu cầu client phải poll (thăm dò).

  1. HTTP 3

Bản draft (nháp) ra đời năm 2020 và vừa mới được phát hành vào tháng 6/2022. HTTP 3 sử dụng một giao thức mới gọi là QUIC thay thế cho TCP. QUIC dựa trên UDP, giới thiệu streams như là “công dân hạng nhất” ở tầng transport. Các streams dùng chung connection, nên không yêu cầu thêm một “handshake” để tạo mới một stream.

QUIC stream được giao đi một cách độc lập, nên hầu hết nếu một packet bị mất thì chỉ ảnh hưởng tới 1 stream. Đây cũng là cách QUIC loại bỏ “head-of-line blocking” ở tầng transport.

QUIC được thiết kế cho việc sử dụng lưu lượng internet cao trên mobile. Người dùng điện thoại thường chuyển đổi liên tục từ mạng này qua mạng khác. Ở phương diện này, nếu dùng TCP thì sẽ rất chậm chạp.

QUIC thực thi một khái niệm gọi là connection ID, cho phép các connection di chuyển từ IP này sang IP khác, mạng này sang mạng khác một cách nhanh chóng mà tin cậy.

Hiện nay HTTP 3 dù mới ra mắt nhưng đã được sử dụng bởi 25% tổng số website và được hỗ trợ bởi nhiều browser.

nguồn tham khảo: System Design Interview by Alex Xu & Sahn Lam

Bộ môn Ứng dụng phần mềm
Cao đẳng FPT Mạng cá cược bóng đá Đà Nẵng

Cùng chuyên mục

Đăng Kí học Fpoly 2023

Bình Luận