Giao thức truyền tải siêu văn bản

Một phần của tài liệu Giáo trình Thiết kế và triển khai website: Phần 1 (Trang 29 - 34)

NHỮNG KHÁI NIỆM CHUNG

1.1.2.1. Giao thức truyền tải siêu văn bản

Giao thức truyền tải siêu văn bản (HyperText Transfer Protocol - HTTP) là một giao thức cơ bản được ứng dụng để truyền tải các tài liệu và các tệp siêu văn bản giữa máy chủ Web (Web server) và máy khách Web (Web client) thơng qua một trình duyệt Web. HTTP xác định cách các kiểu thông điệp (các tệp văn bản, hình ảnh đồ hoạ, âm thanh, video, và các tệp dữ liệu đa phương tiện khác) được định dạng và truyền tải ra sao, và những hành động nào mà các máy chủ Web và các trình duyệt Web phải làm để đáp ứng các lệnh rất đa dạng. Ví dụ, ta có thể sử dụng trình duyệt Web truy xuất vào trang thông tin của Trường Đại học Thương mại bằng cách gõ vào ơ địa chỉ http://www.tmu.edu.vn. Khi đó, một lệnh HTTP sẽ được gửi tới máy chủ Web để ra lệnh và hướng dẫn nó tìm đúng trang Web được u cầu và tải về hiển thị trên trình duyệt Web. Như vậy HTTP là giao thức truyền tải các tệp dữ liệu từ một máy chủ Web vào một trình duyệt Web để người dùng có thể xem một trang Web đang hiện diện trên Internet, HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP. Trình duyệt Web sử dụng giao thức HTTP để truy xuất và tải về các trang thông tin và các hình ảnh từ máy chủ. Chính vì vậy mà ở tiêu đề địa chỉ trang thông tin nào cũng mở đầu bằng http://.

HTTP là một giao thức “phi trạng thái” (Stateless) bởi vì mỗi lệnh của nó đều được thực thi một cách độc lập, lệnh sau khơng biết gì về các lệnh trước đó. Đây chính là một hạn chế, khiếm khuyết của HTTP. Nó là nguyên nhân chính dẫn đến tình trạng các trang Web khơng có khả năng

phản ứng thơng minh đối với các thao tác mà người dùng đưa vào. Hạn chế này đang được các nhà phát triển dịch vụ Web khắc phục trong các công nghệ mới được đưa ra như ActiveX, Java, JavaScript và Cookies,...

HTTP được phát minh bởi Tim Berners Lee - một nhà khoa học máy tính người Anh và nhóm dự án “World Wide Web”, cùng với ngôn ngữ đánh dấu siêu văn bản HTML (HyperText Markup Language), công nghệ liên quan đến máy chủ web và trình duyệt web dựa trên văn bản. Cho đến nay, giao thức HTTP gồm có ba phiên bản là:

- Phiên bản đầu tiên là HTTP 0.9, được Hiệp hội web toàn cầu (World Wide Web - W3C) công bố năm 1991. Đây là giao thức đơn giản để truyền dữ liệu thô trên Internet.

- Phiên bản thứ hai là HTTP 1.0, được định nghĩa tại RFC 1945 vào năm 1996 (RFC - Request for Comments, là những tài liệu kỹ thuật và tổ chức về Internet, bao gồm những tài liệu đặc tả kỹ thuật và chính sách được tổ chức IETF (Internet Engineering Task Force - Nhóm chuyên trách kỹ thuật Internet) phát hành, cho phép thông điệp định dạng kiểu giao thức mở rộng thư Internet đa chức năng (Multipurpose Internet Mail Extensions - MIME), như kiểu văn bản phi cấu trúc (Text), kiểu hình ảnh (Image), kiểu âm thanh (Audio), kiểu phim (Video), kiểu ứng dụng (Application), chứa các thông tin mô tả về dữ liệu được truyền và các tham số chỉnh sửa theo yêu cầu/đáp ứng. Tuy nhiên, phiên bản này không tác động nhiều đến các proxy phân cấp, bộ nhớ đệm, nhu cầu kết nối liên tục hay đến các máy chủ lưu trữ ảo. Proxy là một chương trình trung gian hoạt động vừa như một máy chủ và vừa như một máy khách nhằm mục đích thực hiện các yêu cầu thay cho các máy khách khác.

- Phiên bản thứ ba là HTTP 1.1, lần đầu tiên được công bố tại RFC 2608 vào tháng 01 năm 1997 và sau đó được cập nhật tại RFC 2616 vào tháng 07 năm 1999. HTTP 1.1 có các yêu cầu nghiêm ngặt hơn HTTP 1.0 để đảm bảo độ tin cậy khi thực hiện các tính năng của nó.

HTTP cho phép một tập các phương thức hoặc câu lệnh (methods/commands) và các tiêu đề mở - đóng (open - ended header) để chỉ ra mục đích của một yêu cầu. HTTP được xây dựng trên nguyên tắc tham chiếu được cung cấp bởi định danh tài nguyên thống nhất (Uniform Resource Identifier - URI), hoặc định vị tài nguyên thống nhất (Uniform Resource Locator - URL) hay tên tài nguyên thống nhất (Uniform Resource Name - URN), nhằm chỉ ra nguồn tài nguyên áp dụng phương thức. Thông điệp được gửi theo định dạng tương tự với định dạng sử dụng thư Internet theo quy định của MIME.

HTTP cũng được sử dụng như một giao thức chung để truyền thông giữa tác nhân người dùng (User Agent - UA) và các proxy, gateway (một máy chủ hoạt động như một điểm trung gian đối với máy chủ khác, tiếp nhận các yêu cầu từ máy khách với vai trò như một máy chủ gốc) đến các hệ thống Internet khác, gồm cả các hệ thống hỗ trợ giao thức truyền thư đơn giản (Simple Mail Transfer Protocol - SMTP), giao thức truyền tin tức liên mạng (Network News Transfer Protocol - NNTP), giao thức truyền tệp tin (File Tranfer Protocol - FTP), giao thức Gopher (được thiết kế chính để tìm kiếm và lưu trữ tài liệu phân tán) và WAIS (hệ thống tìm kiếm theo mơ hình khách - chủ sử dụng tiêu chuẩn ANSI Z39.50). Bằng cách này, HTTP cho phép truy cập siêu phương tiện đến các tài nguyên sẵn có từ các ứng dụng đa dạng.

Giao thức HTTP là một giao thức có dạng yêu cầu/đáp ứng. Khi một máy khách gửi một yêu cầu đến máy chủ gồm phương thức yêu cầu (gồm GET, POST, HEAD,...), URI, phiên bản giao thức, kèm với thông điệp kiểu MIME gồm các tham số chỉnh sửa của yêu cầu, thông tin máy khách và nội dung chính thơng qua kết nối đến máy chủ. Máy chủ sẽ đáp ứng bằng dòng trạng thái, gồm phiên bản giao thức thông điệp và mã thông báo thành công hay lỗi, kèm với thơng điệp kiểu MIME có chứa thơng tin về máy chủ, các thông tin thêm về đối tượng và nội dung chính của đối tượng.

Hầu hết giao tiếp HTTP được khởi tạo từ UA và một yêu cầu sử dụng nguồn tài nguyên trên máy chủ gốc (Origin Server - O). Trong trường hợp đơn giản nhất, giao tiếp này có thể được thực hiện thông qua một kết nối duy nhất (v) giữa UA và O như Hình 1.3.

Chuỗi yêu cầu -------------------> UA------------------v------------------O

------------------Chuỗi đáp ứng

Hình 1.3. Mơ hình HTTP đơn giản

(Nguồn: RFC 2616)

Tình huống phức tạp hơn xảy ra khi có một hoặc nhiều điểm trung gian trong chuỗi yêu cầu/đáp ứng. Có ba dạng trung gian phổ biến như: Proxy, gateway và tunnel (mỗi chương trình trung gian hoạt động như một điểm trung chuyển giữa hai kết nối). Proxy là một điểm chuyển tiếp, nhận các yêu cầu cho một URI, viết lại tất cả hoặc một phần của thông điệp và chuyển tiếp yêu cầu đã định dạng lại về phía máy chủ xác định bởi URI. Ở đây, gateway hoạt động như một lớp phía trên của máy chủ khác và nếu cần thiết, biên dịch các yêu cầu tới giao thức máy chủ cơ sở. Tunnel hoạt động như một điểm trung chuyển giữa hai kết nối mà không cần thay đổi thông điệp, các tunnel được sử dụng khi giao tiếp cần phải đi qua một điểm trung gian (như tường lửa) ngay cả khi điểm trung gian này không hiểu được nội dung của thông điệp.

Chuỗi yêu cầu ----------------------------------------------> UA-------v-------A-------v-------B-------v-------C-------v-------O

---------------------------------------------Chuỗi đáp ứng

Hình 1.4. Mơ hình HTTP phức tạp

Hình 1.4 mơ tả ba điểm trung gian (A, B và C) giữa tác nhân người dùng và máy chủ gốc. Một thông điệp yêu cầu/đáp ứng sẽ truyền qua toàn bộ các điểm này bằng bốn kết nối riêng biệt. Mỗi điểm trung gian có thể được tham gia vào nhiều kết nối và các giao tiếp khác tại cùng một thời điểm. Ví dụ, điểm B có thể nhận u cầu từ nhiều máy khách khác ngoài A, hay chuyển tiếp yêu cầu đến nhiều máy chủ khác ngoài C đồng thời với việc xử lý yêu cầu từ điểm A.

Chuỗi yêu cầu ----------------->

UA-------v-------A-------v-------B-------v-------C-------v-------O -----------------Chuỗi đáp ứng

Hình 1.5. Mơ hình HTTP phức tạp với bộ nhớ Cache

(Nguồn: RFC 2616)

Bất cứ thành phần nào tham gia kết nối mà khơng hoạt động như một tunnel đều có thể sử dụng một bộ nhớ đệm (Cache) nội bộ để xử lý các yêu cầu. Bộ nhớ đệm giúp cho chuỗi yêu cầu/đáp ứng được xử lý nhanh hơn khi một trong các thành phần tham gia trong chuỗi có u cầu về dữ liệu. Hình 1.5 minh họa chuỗi yêu cầu/đáp ứng từ điểm UA đến điểm B khi tại điểm B có lưu trữ dữ liệu tạm thời từ điểm O (thông qua điểm C), không được lưu trữ tạm thời tại UA hay tại điểm A.

An toàn bảo mật của giao thức HTTP phiên bản 1.1 cũng là một vấn đề hết sức quan trọng đối với các nhà phát triển ứng dụng, nhà cung cấp thông tin và người dùng cuối. Các vấn đề an toàn bảo mật cần xem xét bao gồm: Bảo vệ thông tin cá nhân (lạm dụng thông tin đăng nhập máy chủ, truyền thơng tin nhạy cảm, mã hóa thơng tin nhạy cảm ở dạng URI, vấn đề riêng tư khi kết nối để nhận các tiêu đề), các tấn công tệp tin và tên đường dẫn, hệ thống tên miền (Domain Name System - DNS) giả, các tiêu đề giả, các vấn đề sắp xếp nội dung, vấn đề xác thực và máy khách không hoạt động, vấn đề về proxy và cache, các tấn công từ chối

dịch vụ trên proxy. Do đó, để đảm bảo an tồn khi truyền thơng trên mạng, có thể sử dụng HTTPS (Hypertext Transfer Protocol Secure - đây là sự kết hợp giữa giao thức HTTP và giao thức bảo mật SSL (Secure Socket Layer) hay TLS (Transport Layer Security) cho phép trao đổi thông tin một cách bảo mật trên Internet).

Tóm lại, HTTP là giao thức được ứng dụng trong các phần mềm máy chủ Web và trong các trình duyệt Web để trao đổi thông tin giữa máy chủ Web và máy khách Web trên môi trường mạng.

Một phần của tài liệu Giáo trình Thiết kế và triển khai website: Phần 1 (Trang 29 - 34)

Tải bản đầy đủ (PDF)

(104 trang)