SinhVienCNTT.Net
Thứ Sáu, Tháng 10 10, 2025
  • Login
No Result
View All Result
  • Trang chủ
  • Bài viết nổi bật
  • Security
    • Kỹ thuật phân tích mã độc
    • CEH v13
  • Các môn học đại học
    • Các môn đại cương
      • Nhập môn mạng máy tính
      • Nhập môn lập trình
      • Hệ điều hành
    • Ngành An toàn thông tin
      • Lập trình hệ thống
    • Ngành Mạng máy tính & Truyền thông dữ liệu
  • Tài liệu CNTT
  • Liên hệ
Gửi email
  • Trang chủ
  • Bài viết nổi bật
  • Security
    • Kỹ thuật phân tích mã độc
    • CEH v13
  • Các môn học đại học
    • Các môn đại cương
      • Nhập môn mạng máy tính
      • Nhập môn lập trình
      • Hệ điều hành
    • Ngành An toàn thông tin
      • Lập trình hệ thống
    • Ngành Mạng máy tính & Truyền thông dữ liệu
  • Tài liệu CNTT
  • Liên hệ
No Result
View All Result
SinhVienCNTT.Net
No Result
View All Result
Home Các môn học đại học

Cookies và Web Cache trong HTTP

Nhà ngoại cảm by Nhà ngoại cảm
14 Tháng 10, 2024
in Các môn học đại học
Reading Time: 16 mins read
0
Cookies và Web Cache trong HTTP
Bài viết này là phần 16/20 thuộc series Nhập môn mạng máy tính
  • Phần 1: Slide Nhập môn mạng máy tính (Tiếng Anh)
  • Phần 2: Tổng quan về Internet và các thành phần của Internet
  • Phần 3: Dịch vụ của Internet, API và giao thức của Internet
  • Phần 4: Các thành phần mạng biên của Internet
  • Phần 5: [Version mới nhất] Sách Computer Networking: A Top-Down Approach 8th Edition
  • Phần 16: Cookies và Web Cache trong HTTP
  • Phần 6: Các phương tiện truyền dẫn của Internet
  • Phần 7: Các thành phần mạng lõi của Internet
  • Phần 8: Trễ gói tin, mất gói tin và thông lượng mạng chuyển mạch gói
  • Phần 9: Sự phân tầng giao thức và mô hình TCP/IP

Ở bài trước của Series Nhập môn mạng máy tính chúng ta đã tìm hiều về định dạng của các thông điệp HTTP, trong bài này chúng ta sẽ tìm hiểu về Cookies và Cache là gì?

Mục lục ẩn
1. Cookies là gì?
2. Web cache là gì?
3. Cập nhật trang web có điều kiện
4. Tổng kết

Cookies là gì?

Máy chủ trong giao thức HTTP không quản lý trạng thái của trình duyệt. Điều này giúp đơn giản hóa việc thiết kế máy chủ và cho phép các kỹ sư phát triển các máy chủ Web năng suất cao, có thể xử lý hàng ngàn kết nối TCP cùng lúc. Tuy nhiên, đôi khi các trang web muốn nhận ra người dùng là ai, nhằm kiểm soát việc truy cập trang web của người đó, hoặc có thể cung cấp nội dung cho người dùng như một chức năng liên quan đến định danh người dùng.

Vì mục đích này, giao thức HTTP đặt ra kỹ thuật cookies. Kỹ thuật cookies được định nghĩa trong RFC 2965, nhằm cho phép các trang web quản lý các hoạt động của người dùng trên trang web đó. Ngày nay, hầu hết các trang web thương mại đều sử dụng kỹ thuật cookie.

Như được minh họa trong hình sau đây, kỹ thuật cookie đưa vào bốn thành phần:

  1. Các dòng mô tả trong thông điệp phản hồi.
  2. Dòng thông số trong thông điệp yêu cầu.
  3. Tập tin cookie được giữ tại máy tính của người dùng và được trình duyệt của người dùng quản lý.
  4. Một cơ sở dữ liệu cookie đặt tại trình phục vụ Web.
quan ly trang thai nguoi dung bang ky thuat cookies
Quản lý trạng thái người dùng bằng kỹ thuật cookie

Xét một ví dụ ở hình trên để biết cách thức cách hoạt động của cookie như thế nào. Giả sử San luôn truy cập web bằng cách dùng trình duyệt Internet Explorer từ máy tính để bàn ở nhà. San muốn truy cập vào trang Amazon.com lần đầu tiên, và trước đó San cũng đã từng truy cập vào một khác là eBay. Khi thông điệp yêu cầu từ San đến trình chủ Web của Amazon, máy chủ sinh ra một số định danh duy nhất (ID) cho San và ghi vào cơ sở dữ liệu cookie.

Dữ liệu cookie tại cơ sở dữ liệu này có thể truy xuất được qua chỉ mục ID. Sau đó, máy chủ Web của Amazon gửi thông điệp phản hồi đến trình duyệt của San kèm theo dòng mô tả Set-cookie, dòng này mang trị ID đã sinh ra. Chẳng hạn, dòng mô tả có thế là Set-cookie: 1678

Khi trình duyệt của San nhận được thông điệp phản hồi, nó nhận ra được dòng mô tả Set-cookie:. Khi đó, trình duyệt sẽ thêm một dòng mới vào tập tin cookie mà nó quản lý. Dòng này có tên của máy chủ Web chứa trang Web Amazon và ID mà Amazon đã cấp phát cho San. Lưu ý rằng tập tin cookie này cũng có một dòng cho trang eBay, vì San đã từng truy cập eBay trước đây.

Khi San tiếp tục duyệt web ở trang Amazon, mỗi lần cô ấy yêu cầu một trang web, trình duyệt sẽ tìm trong tập tin cookie ở máy San, trích ra ID ứng với trang Web này, và đặt dòng thông số Set-cookie: chứa ID này trong thông điệp yêu cầu. Cụ thể, mỗi thông điệp yêu cầu gửi đến máy chủ Amazon sẽ gồm dòng thông số này: Set-cookie: 1678 

Bằng cách này, máy chủ web của Amazon có thể lần theo dấu vết các hành động của San trên trang Amazon. Mặt dù trang web Amazon không biết tên của San, nó biết chính xác những trang nào người dùng có ID 1678 đã từng truy cập, theo thứ tự nào và vào khi nào. Amazon dùng kỹ thuật cookie để cung cấp dịch vụ giỏ hàng (shopping cart). Dịch vụ này cho phép Amazon lưu giữ một danh sách tất cả các sản phẩm mà San muốn mua, để cô ấy có thể trả tiền ở cuối phiên mua bán.

Giả sử San chưa trả tiền và rời khỏi trang Web Amazon. Một tuần sau, San quay trở lại. Trình duyệt của San tiếp tục đặt dòng tham số Cookie:1678 vào trong các thông điệp yêu cầu trước khi gửi cho máy chủ Web của Amazon. Nhờ vậy mà máy chủ biết được nhật ký truy cập của San tại Amazon và khôi phục lại giỏ hàng chứa các sản phẩm mà San đã từng chọn mua.

Nếu San đăng kí tài khoản với Amazon – tức cung cấp cho Amazon họ tên, địa chỉ email, địa chỉ nhà, và thông tin thẻ tín dụng – thì Amazon có thể đưa thông tin này vào cở sở dữ liệu cookie của Amazon, và liên kết tài khoản của San với ID của cô ấy (và tất cả các trang mà San đã truy cập trước đây). Đây là cách mà Amazon và các trang web thương mại điện tử khác cung cấp cái gọi là mua hàng với một click (on-click shopping).

Sau này, nếu San chọn mua một món hàng tại Amazon, San không cần phải điền lại tên của mình, cũng như thông tin thẻ tín dụng hay địa chỉ nữa.Tuy kỹ thuật cookie có thể giúp người dùng đơn giản hóa việc mua sắm trên Internet, nhưng kỹ thuật này vẫn bị nhiều tranh cãi vì nó chạm đến sự riêng tư của người dùng. Bằng cách sử dụng kết hợp kỹ thuật cookie và thu thập thông tin, tài khoản người dùng, một trang web có thể biết nhiều thông tin về người dùng và có thể bán thông tin này.

Web cache là gì?

Một web cache – còn được gọi là một proxy server – là một thực thể mạng có nhiệm vụ đáp ứng các thông điệp yêu cầu thay cho máy chủ web. Web cache có bộ nhớ riêng và giữ các bản sao của những đối tượng được yêu cầu gần nhất trong bộ nhớ này. Như trong hình dưới đây, trình duyệt có thể được thiết lập cấu hình để định hướng tất cả các thông điệp yêu cầu đến web cache. Giả sử một trình duyệt đang yêu cầu đối tượng http://www.someschool.edu/campus.gif. Đây là những bước xảy ra:

  1. Trình duyệt thiết lập một kết nối TCP đến Web cache và gửi thông điệp yêu cầu đến Web cache.
  2. Web cache kiểm tra xem có bản sao nào của đổi tượng đang được lưu trữ tại Web cache không? Nếu có thì Web cache sẽ gửi về trình duyệt.
  3. Nếu Web cache không có đối tượng được yêu cầu, nó sẽ mở một kết nối TCP đến máy chủ Web tại www.someschool.edu. Kế đến, Web cache gửi thông điệp yêu cầu đối tượng.
  4. Khi Web cache nhận được đối tượng, nó lưu một bản sao của đối tượng vào bộ nhớ tại Web cache, và gửi bản sao (đính kèm vào thông điệp phản hồi) đến trình duyệt.
cac may khach dang yeu cau cac doi tuong thong qua web cache
Các máy khách đang yêu cầu các đối tượng thông qua Web cache

Web cache có vai trò: vừa là Server, vừa là Client. Thông thường, các nhà cung cấp dịch vụ Internet trang bị và triển khai Web cache. Chẳng hạn, một trường đại học có thể thiết lập Web cache trong mạng nội bộ và thiết lập cấu hình cho các trình duyệt trong trong trường hướng đến cache. Hoặc một nhà cung cấp dịch vụ Internet như AOL cũng có thể cài đặt một hoặc nhiều cache trong mạng nội bộ và thiết lập cấu hình cho các trình duyệt khách hàng của AOL hướng đến các cache đó. Có hai lý do cho việc triển khai Web cache:

  1. Web cache có thể giảm thời gian đáp ứng cho một thông điệp yêu cầu đến từ máy khách. Điều này càng có ý nghĩa nếu băng thông thực tế giữa máy khách và máy chủ ít hơn nhiều so với băng thông thực tế giữa máy khách và cache. Nếu kết nối giữa máy khách và cache có tốc độ cao như thường thấy, và cache có sẵn đối tượng được yêu cầu, thì cache sẽ có thể chuyến giao đối tượng đó về máy khách rất nhanh chóng.
  2. Web cache có thể giảm lưu lượng trên một liên kết truy cập từ tổ chức (như công ty, trường học) đến Internet.
co chai giua mang cua mot to chuc va internet
Cổ chai giữa mạng của một tổ chức và Internet

Để hiểu sâu hơn về ưu điểm của cache, xét ví dụ trong hình trên. Hình này cho thấy hai mạng – mạng tổ chức (institutional network) và Internet. Mạng tổ chức là một mạng cục bộ (LAN) tốc độ cao. Một bộ đinh tuyến (router) trong mạng tổ chức và một bộ định tuyến trong Internet được kết nối với nhau qua đường truyền 15Mbps. Các máy chủ được lắp vào mạng Internet và được đặt tại mọi nơi trên thế giới.

Giả sử kích thước đối tượng yêu cầu trung bình là 1 Mbit và tỉ lệ yêu cầu trung bình từ các trình duyệt đến các máy chủ là 15 yêu cầu trong một giây. Các thông điệp yêu cầu HTTP nhỏ không đáng kể và không chiếm nhiều băng thông trên mạng. Và cũng giả sử rằng thời gian từ khi bộ định tuyến phía Internet trong hình trên chuyển tiếp thông điệp HTTP yêu cầu (trong một gói IP) đến khi nhận được phản hồi (trong nhiều gói IP) là trung bình hai giây.

Thời gian này được gọi là độ trễ Internet (Internet delay). Tổng thời gian phản hồi (thời gian từ khi trình duyệt yêu cầu một đối tượng đến khi nhận được đối tượng) là tổng thời gian truy cập và độ trễ Internet. Cường độ lưu thông trên mạng LAN là:

(15 yêu cầu/giây) * (1 Mbits/yêu cầu) / (100 Mbps) = 0.15

Trong khi cường độ lưu thông tại vùng truy cập (từ bộ định tuyến Internet đến bộ định tuyến tổ chức) là:

(15 yêu cầu/giây) * (1 Mbits/yêu cầu) / (15 Mbps) = 1

Cường độ lưu thông trên mạng LAN là 0.15, khoảng 1/10 của milli-giây; do đó, có thể bỏ qua độ trễ mạng LAN. Cường độ lưu thông tiếp cận đến 1 (trường hợp liên kết truy cập trong hình), độ trễ trên đường truyền trở nên rất lớn và tăng không có chặn trên. Dần đến thời gian phản hồi các yêu cầu trung bình tăng theo từng phút, điều này là không thể chấp nhận đối với người dùng.

Một giải pháp là tăng tỉ lệ truy cập từ 15Mbps lên 100Mbps. Cách này sẽ làm cho cường độ lưu thông sẽ giảm xuống 0.15, thay đối các độ trễ giữa hai bộ định tuyến. Khi đó, tổng thời gian phản hồi là hai giây, cũng chính là độ trễ Internet. Giải pháp này cũng có nghĩa là tố chức phải nâng cấp đường truyền của nó từ 15Mpbs lên 100Mpbs.

them cache vao mang to chuc
Thêm cache vào mạng tổ chức

Xem xét giải pháp không nâng cấp đường truyền mà cài đặt một web cache trong mạng tổ chức. Giải pháp này được mô tả trong hình trên. Ti lệ hit – tỉ lệ các yêu cầu có lưu trong cache – thực tế nằm trong khoảng từ 0.2 đến 0.7. Giả sử cache cung cấp tỉ lệ hit là 0.4 cho tổ chức. Vì các máy khách và cache được kết nối cùng mạng LAN tốc độ cao, nên 40% yêu cầu sẽ được đáp ứng ngay lập tức, trong vòng 10 ms bởi cache.

Mặc dù, 60% yêu cầu đối tượng còn lại sẽ được đáp ứng thông qua đường truyền liên kết. Cường độ lưu thông trên đường truyền giảm từ 1.0 xuống 0.6. Điển hình cường độ lưu thông ít hơn 0.8 tương ứng với độ trễ nhỏ, một phần mười của mill giây, trên đường truyền 15Mbps. Độ trễ này không đáng kế so với 2s của độ trễ Internet. Với các xem xét trên thì độ trễ trung bình là:

0.4 * (0.01 giây) + 0.6 * (2.01 giây) Lớn hơn một chút so với 1.2 giây. Do đó, giải pháp thứ hai cung cấp thời gian phản hồi nhanh hơn giải pháp đầu tiên, và nó không yêu cầu tổ chức nâng cấp đường truyền lên Internet. Chắc chắn tổ chức phải mua và cài đặt một Web cache.

Cập nhật trang web có điều kiện

Mặc dù dùng cache có thể giảm thời gian phản hồi người dùng, nhưng bản sao của một đối tượng bên trong cache có thể đã cũ. Mặt khác, đối tượng lưu trong máy chủ web có thể được bổ sung sau khi lưu bản sao trên cache. Vì vậy HTTP có một kỹ thuật cho phép cache xác nhận đối tượng của nó đã được cập nhật. Kỹ thuật này được gọi là GET có điều kiện. Một thông điệp yêu cầu HTTP được gọi là thông điệp GET có điều kiện nếu:

  • Thông điệp yêu cầu dùng phương thức GET.
  • Thông điệp yêu cầu có dòng header If-modified-since.

Xét ví dụ sau:

1 – Một proxy cache thay cho trình duyệt gửi một yêu cầu đến máy chủ web:

GET /fruit/kiwi.gif HTTP/1.1
Host: ww. exotiquecuisine.com

2 – Máy phục vụ web gửi một thông điệp phản hồi với đối tượng được yêu cầu đến cache:

HTTP/1.1 200 OK
Date: Sat, 7 Jul 2007 15:39:29
Server: Apache/1.3.0 (Unix)
Last-Modified: Wed, 4 Jul 2007 09:23:24
Content-Type: image/gif
(data data data data data …)

Cache chuyển đối tượng đến trình duyệt yêu cầu, đồng thời lưu lại đối tượng lên vùng nhớ cục bộ. Cache cũng lưu thời gian bổ sung gần nhất cùng với đối tượng.

3 – Một tuần sau đó, một trình duyệt khác yêu cầu cùng đối tượng thông qua cache, và đối tượng vẫn còn lưu trong cache. Vì đối tượng này vừa được cập nhật trên máy chủ web một tuần qua, cache phải kiểm tra cập nhật bằng cách dùng một lệnh GET có điều kiện. Cụ thế cache sẽ gửi:

GET /fruit/kiwi.gif HTTP/1.1
Host: WWW. exotiquecuisine. com
If-modified-since: Wed, 4 Jul 2007 09:23:24

Lưu ý giá trị của dòng header If-modified-since: chính xác là giá trị của dòng header Last-modified: đã được gửi đến máy chủ một tuần trước đây. Lệnh GET có điều kiện đang yêu cầu máy chủ gửi đối tượng nếu đối tượng vừa được bổ sung sau một ngày tháng cụ thể nào đó được yêu cầu xác nhận như trong ví dụ trên là đối tượng vừa được bổ sung kể từ ngày 04/07/2007 lúc 09:23:24.

4 – Máy phục vụ web gửi một thông điệp đến cache:

HTTP/1.1 304 Not Modified
Date: Sat, 14 Jul 2007 15:39:29
Server: Apache/1.3.0 (Unix)
(empty entity body)

Trong thông điệp phản hồi đến lệnh GET có điều kiện, máy chủ web vẫn gửi thông điệp phản hồi nhưng không thêm đối tượng được yêu cầu vào thông điệp phản hồi. Thêm đối tượng được yêu cầu sẽ làm tốn băng thông và làm tăng thời gian phản hồi người dùng, đặc biệt nếu đối tượng đó lớn. Thông điệp phản hồi cuối cùng nếu có dòng “304 Not Modified” trong dòng trạng thái, sẽ yêu cầu cache có thể tiếp tục dùng và gửi các bản sao của đối tượng đến trình duyệt yêu cầu.

Tổng kết

Vậy là chúng ta đã tìm hiểu xong về Cookies và Cache trong HTTP. Bài tới chúng ta sẽ cùng nhau tìm hiểu về một loại giao thức khác của tầng ứng dụng: FTP

Tags: Mạng máy tínhGiao thức
Share71Tweet45
Previous Post

Bài tập Deadlock (Tắc nghẽn) – Bài tập Hệ điều hành

Next Post

[CEH Tiếng Việt] Module 2 – Phần 4: Email Footprinting – Truy vết email

Nhà ngoại cảm

Nhà ngoại cảm

Studying Computer Networking and Data Communications 

Related Posts

Đáp án bài tập thực hành CSDL – Quản lý giáo vụ
Các môn học đại học

Đáp án bài tập thực hành CSDL – Quản lý giáo vụ

2 Tháng 9, 2024
Đáp án bài tập thực hành CSDL – Quản lý bán hàng
Các môn học đại học

Đáp án bài tập thực hành CSDL – Quản lý bán hàng

2 Tháng 9, 2024
operating-system-concepts-thumbnails
Các môn học đại học

[Ebook] Sách Operating System Concepts 10th Edition pdf

3 Tháng 9, 2022
bai-tap-deadlock
Các môn học đại học

Bài tập Deadlock (Tắc nghẽn) – Bài tập Hệ điều hành

26 Tháng 8, 2022
thuc-hanh-he-dieu-hanh-uit-lab-1
Các môn học đại học

Thực hành Hệ điều hành Lab 1: Hướng dẫn cài đặt Ubuntu và các lệnh cơ bản của Shell

26 Tháng 8, 2022
Định dạng thông điệp HTTP
Các môn học đại học

Định dạng thông điệp HTTP

14 Tháng 10, 2024
Next Post
email-footprinting

[CEH Tiếng Việt] Module 2 - Phần 4: Email Footprinting - Truy vết email

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Tất cả chuyên mục

  • Các môn học đại học
  • CCNA 200-301
  • CEH Tiếng Việt – CEH v13
  • Chưa phân loại
  • Digital Forensics
  • Machine Learning
  • Network
  • Nổi bật
  • Phân tích mã độc
  • Security
  • Tài liệu CNTT
  • Từ vựng IELTS

Thẻ

API AWS Bash Shell C++ Cisco ASA Cisco Packet Tracer Collocations Footprinting Giao thức Machine Learning Mạng máy tính nmap Quản lý rủi ro Regular Expression TCP/IP Tuyển chọn UIT Wireshark

logo sinhviencntt.net

Blog Sinh viên CNTT chia sẻ kiến thức, tài liệu liên quan đến nhóm ngành Công nghệ thông tin.

Chúng tôi sẵn sàng đón những ý kiến đóng góp, cũng như bài viết của các bạn gửi đến SinhVienCNTT.Net.

Giới thiệu

Blog Sinh viên CNTT chia sẻ kiến thức, tài liệu liên quan đến nhóm ngành Công nghệ thông tin.

Liên hệ

Email: sinhviencntt.net@gmail.com

Tìm kiếm

No Result
View All Result

Danh mục

  • Các môn học đại học
  • CCNA 200-301
  • CEH Tiếng Việt – CEH v13
  • Chưa phân loại
  • Digital Forensics
  • Machine Learning
  • Network
  • Nổi bật
  • Phân tích mã độc
  • Security
  • Tài liệu CNTT
  • Từ vựng IELTS
  • Home
  • Liên hệ
  • Privacy & Policy
  • Other Links

© 2023 SinhVienCNTT.Net - Blog Sinh viên Công nghệ thông tin.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Trang chủ
  • Bài viết nổi bật
  • Security
    • Kỹ thuật phân tích mã độc
    • CEH v13
  • Các môn học đại học
    • Các môn đại cương
      • Nhập môn mạng máy tính
      • Nhập môn lập trình
      • Hệ điều hành
    • Ngành An toàn thông tin
      • Lập trình hệ thống
    • Ngành Mạng máy tính & Truyền thông dữ liệu
  • Tài liệu CNTT
  • Liên hệ

© 2023 SinhVienCNTT.Net - Blog Sinh viên Công nghệ thông tin.