Để biết thêm chi tiết về cách hoạt động của các kết nối và xác nhận TCP, hãy xem câu trả lời của Diogo
Khi bạn truy cập một trang web, một cái gì đó như thế này xảy ra:
Một kết nối được tạo với máy chủ DNS của bạn (nếu chưa được thực hiện) mà máy tính của bạn đã biết địa chỉ IP của (hoặc thông qua một số cơ chế tự động yêu cầu thông tin này từ ISP của bạn), gửi các gói để kết nối và xác nhận kết nối đã được thực hiện. Sau khi kết nối được thực hiện, trang web của bạn sẽ hỏi địa chỉ IP của trang bạn truy cập để nó biết máy tính nào cần liên hệ để lấy trang web. Điều này có nghĩa là nó sẽ gửi một gói chứa tên miền để nhận được phản hồi đó. Sau đó, nó cũng gửi một gói để đóng kết nối.
Một kết nối được tạo cho máy chủ web lưu trữ trang web bạn muốn truy cập, điều này một lần nữa sẽ gửi một gói để kết nối và xác nhận kết nối. Sau đó, nó đưa ra yêu cầu cho trang bạn muốn truy cập, lại gửi một gói. Sau đó, nó phản hồi và bạn được phục vụ HTML của trang web chỉ ra cấu trúc của trang (không phải bố cục).
Bởi vì bạn chỉ có cấu trúc, bạn vẫn cần tìm nạp phần còn lại. Vì vậy, các yêu cầu bổ sung (một câu hỏi SU giống như 40 yêu cầu) được thực hiện để có được các kịch bản, kiểu và phương tiện như hình ảnh và những thứ tương tự. Và vì một số trong số này có thể không ở trên cùng một máy chủ web khi bạn truy cập, việc phân giải DNS bổ sung có thể diễn ra đưa bạn quay lại bước 1.
Trên hết, lưu ý rằng mọi gói bạn nhận được đều được thừa nhận thêm một nguồn dữ liệu khác được tải lên, để dự phòng trên các gói thường có nhiều gói được nhận cùng một lúc. Do đó, khi bạn nhận được thứ gì đó bạn sẽ gửi đến máy chủ mà bạn đã nhận được để nó biết rằng những gì nó gửi không bị mất ở đâu đó. Theo cách đó, máy chủ không phải thử gửi lại.
Điểm mấu chốt là bạn không thể tải xuống một cái gì đó mà không kết nối và tải lên một số yêu cầu đến các máy chủ mà bạn đang tải xuống. Và đó là những gì tạo nên một chút tải lên ...
Và không phải là bạn chỉ nhấp chuột, bạn làm nhiều hơn thế, hãy lấy câu hỏi của bạn làm ví dụ: Bạn đã nhập khoảng 500 ký tự, một ký tự được tính là 1 byte (nếu là ký tự ASCII, tất cả đều trong trường hợp này) và có thể từ 1 đến 4 byte (nếu là ký tự Unicode). Vì vậy, câu hỏi của bạn thực sự mất 0,5 KB hoặc 0,00005 MB! Nhưng đó không chỉ là câu hỏi được gửi cho chúng tôi, nó còn được bao quanh bởi một yêu cầu POST hoặc AJAX yêu cầu máy chủ lưu trữ câu hỏi của bạn và chính tiêu đề gói.
Nếu bạn thêm mọi thứ lên, sẽ trở nên hợp lý để đạt được một vài megabyte trong vài giờ hoặc lâu hơn.