Các chức năng của bất kì một ứng dụng phần mềm nào có thể được chia thành 3 nhóm sau đây: Các chức năng liên quan tới đầu vào input và đầu ra output Các chức năng ứng dụng, cụ thể
Trang 1Chương I Giới thiệu Internet và Intranet 3
1.1 Kiến trúc logic mạng máy tính 3
1.1.1 Khái niệm cơ bản về kiến trúc máy tính 3
1.1.2 Kiến trúc Peer-to-Peer và các hệ thống tính toán 4
1.1.3 Kiến trúc khách/chủ cổ điển 5
1.1.4 Kiến trúc khách chủ dựa Web 10
1.2 Nền tảng của các Công nghệ mạng 12
1.2.1 Sự tương tác với Webserver 12
1.2.2 Xử lý thông tin phân tán trên nền tảng cả các chương trình dễ biến đổi 15
1.2.3 Truy xuất tới cơ sở dữ liệu quản hệ 23
Chương II Ngôn ngữ HTML 27
2.1 Khái niệm về ngôn ngữ HTML 27
2.2 Lập trình Web với ngôn ngữ HTML 27
2.2.1 Các thành phần cơ bản của html 27
2.2.2 Cấu trúc tệp HTML 28
2.3 Các tag cơ bản trong HTML 28
2.3.1 Thẻ giải thích 28
2.3.2 Các thẻ định dạng văn bản 28
2.3.4 Một số kí tự đặc biệt trong HTML 31
2.3.5 Các tag dùng thiết kế bảng 32
2.3.6 Các tag tạo Frame 33
2.3.7 Các tag dùng tạo Form 33
Chương III Cascading style sheets 35
2.1 Căn bản về CSS (Cascading style sheets) 35
2.2 Cú pháp CSS 35
2.2.1 Phần tử chọn – Seclector 35
2.2.2 Các phần tử lựa chọn lớp giả động 39
2.2.3 Thuộc tính, miêu tả, qui tắc 41
2.3 Bổ sung CSS vào tài liệu HTML 44
2.4 Các mô hình trực quan 45
Chương IV Ngôn ngữ kịch bản Javascript 48
4.1 Giới thiệu ngôn ngữ kịch bản Javascrip 48
4.2 Ngôn ngữ kịch bản JavaScript 50
4.2.1 Kiểu dữ liệu 50
4.2.2 Khai báo biến 50
4.2.3 Các toán tử JavaScript 51
4.2.4 Các câu lệnh rẽ nhánh và lặp 53
4.2.3 Các đối tượng trong JavaScript 59
4.2.4 Hàm 66
4.2.5 Lập trình hướng đối tượng trong JavaScript 68
4.2.5.1 Tạo một đối tượng 68
4.2.6 Lập trình với các đối tượng của trình duyệt 69
4.2.7 HTML Forms 75
Chương V Active Server Pages 88
5.1.Giới thiệu công nghệ ASP 88
5.2 Cú pháp và thao tác cơ bản 88
5.2.1 Cách chèn các đoạn mã VBScript vào trong trang web 88
5.2.2 Chú thích 89
5.2.5 Các toán tử 90
5.2.4 Hằng và biến 90
Trang 25.3 Các câu lệnh 91
5.3.1 Lệnh rẽ nhánh 91
5.3.2 Lệnh lặp xác định 92
5.3.3 Vòng lặp không xác định 93
5.4 Hàm và thủ tục 95
5.4.1 Hàm 95
5.4.2 Thủ tục 95
5.4.3 Ví dụ sử dụng hàm và thủ tục (Giaỉ phương trình bậc 2 một ẩn số) 95
5.4.2 MỘT SỐ HÀM THƯỜNG DÙNG TRONG VBSCRIPT 96
5.4.3 ĐOẠN MÃ DÙNG CHUNG 98
5.5 Tệp cấu hình GLOBAL.ASA 99
5.5.1 Các sự kiện 99
5.5.2 Khai báo đối tượng 99
5.5.3 Một file cấu hình Global.asa đơn giản 100
5.5.2 TẬP HỢP (COLLECTION) TRONG ASP 100
5.5.2.1 Khái niệm 100
5.5.2.2 Cách truy cập các phần tử trong tập hợp 101
5.6 Xử lý các FORM dữ liệu 102
5.6.1 Mở đầu 102
5.6.2 Sử dụng phương thức GET 102
5.6.3 Sử dụng phương thức POST 103
5.7 Các đối tượng cài sẵn trong ASP 105
5.7.1 Các đối tượng ASP 105
5.7.2 Đối tượng REQUEST 105
5.7.3 Đối tượng RESPONSE 108
5.7.4 Đối tượng APPLICATION 109
5.7.5 ĐỐI TƯỢNG SESSION 111
5.7.6 ĐỐI TƯỢNG SERVER 113
5.8 COOKIES 116
5.8.1 Khái niệm COOKIES 116
5.8.2 Thiết lập COOKIES 116
5.8.3 Lấy giá trị của COOKIES 116
5.8.4 Thư mục COOKIES 116
5.8.5 Kiểm tra xem COOKIES có dùng khóa không 117
5.9 Giới thiệu ADO và các kết nối cơ sở dữ liệu 117
5.9.1 Giới thiệu 117
5.9.2 Kế nối với cơ sở dữ liệu 117
5.9.3 Các đối tượng của ADO 118
Trang 3Chương I Giới thiệu Internet và Intranet 1.1 Kiến trúc logic mạng máy tính
1.1.1 Khái niệm cơ bản về kiến trúc máy tính
Với sự phát triển không ngừng về qui mô và độ phúc tạp của các mô hình mạng máy tính đã dẫn đến sự phức tạp trong công nghệ vận hành của các mạng này, và hiểu được sự phức tạp này là yếu tố cần thiết cho phép tổ chức bảo vệ hiệu quả nguồn tài nguyên thông tin Công nghệ vận hành của bất kì hệ thống nào đều phụ thuộc vào kiến trúc miêu tả các thành phần của công nghệ, các chức năng và mỗi quan hệ của chúng
Rất khó để hiểu và phân tích kiến trúc của hệ thống phúc tạp một cách trọn vẹn Để giảm độ phức tạp của sự phân tích, một kiến trúc sẽ được cân nhắc ở các mức khác nhau Điều này rất
có ích để xem xét mỗi mức với các chức năng trừu tượng ẩn đi hiết tiết của sự thực thi các thành phần của kiến trúc
Khi nghiên cứu kiến trúc của các mạng máy tính, việc phân biệt giữa những kiến trúc vật lý
và kiến trúc logic rất cần thiết Kiến trúc vật lý miểu tả cấu trúc, chức năng và những mối quan hệ trung gian giữa các giao thức thực thi tại tầng dưới và các tầng giữa trong mô hình phân lớp chuẩn của sự tương tác mạng (mô hình tham chiếu OSI, một cách cụ thể giao thức của tầng vật lý, liên kết dữ liệu, mạng, giao vận và tầng phiên) Vì vậy, kiến trúc vật lý không chỉ phụ thuộc vào kiến trúc, chức năng và mối quan hệ qua lại của phần cứng mạng, mà còn phụ thuộc sự thực thi phần mềm của các giao thức tại tầng thấp và tầng giữa của mô hình OSI
Để có thể phân tich chi tiết về kiến trúc vật lý, cần phải xem xét tại tất cả các mức, tương ứng với tầng vật lý, liên kết dữ liệu, mạng, giao vận và phiên của mô hình phân lớp chuẩn
Hình 1.1: Mối quan hệ giữa lớp OSI và kiểu kiến trúc mạng
Trang 4Kiến trúc logic miêu tả cấu trúc, nhiệm vụ và mối quan hệ của phần mềm thực thi các giao thức ở tầng trên, đặc biệt các giao thức ở tầng trình diễn và tầng ứng dụng Kiến trúc này mang lại công nghệ tích hợp và hợp nhất của mạng máy tính và có thể xây dựng các mức trừu tượng khác nhau của kiến trúc vật lý
Hiện nay, có một vài loại kiến trúc mạng logic như sau:
Kiến trúc ngang hàng
Kiến trúc khách/chủ cổ điển
Kiến trúc khách chủ dựa vào Web
Sự xuất hiện của các mô hình đều liên quan đến các giai đoạn khác nhau của sự phát triển hệ thống mạng máy tính Sự lựa chọn chính xác mô hình cho kiến trúc logic của mạng máy tính cho phép nhà thiết kế mạng đáp ứng những yêu cầu về tình hiệu quả, độ tin cậy bảo vệ những nguồn tài nguyên mạng, sự uyển chuyển thiết lập mạng và hơn nữa đó là chi phí nhỏ nhất cho việc xây dựng và quản trị
1.1.2 Kiến trúc Peer-to-Peer và các hệ thống tính toán
Bước đầu tiên trong sự tiến triển các hệ thống tính toán xuất hiện từ năm 1940 đến 1970,và trong thực tế, nó đã quay trở lại ngay sau khi chiếc máy tính đầu tiên được phát minh ra Theo nguyên tắc, mỗi một hệ thống tính toán tại thời điểm này đều dựa vào việc sử dụng chia
sẻ của máy tính đa người dùng, khi mà máy tính chưa xuất hiện Kiến trúc của những hệ thống tính toán này, vận hành trong chế độ tự trị, được tập trung với các thiết bị đầu cuối kết nối đến máy tính trung tâm (Hình 1.2)
Hình 1.2: Kiến trúc đầu tiển của hệ thống tính toán
Tuy nhiên, nếu các máy tính được kết nối bởi các liên kết truyền thông để tạo thành một mạng, mạng như vậy có một kiến trúc ngang hàng, trong đó không có các máy tính tận hiến cung cấp toàn bộ nguồn tài nguyên của chúng cho các máy tính khác trong mạng sử dụng chung
Vì vậy, kiến trúc tập trung thuộc về danh mục của một hệ thống tính toán tự trị dựa trên việc
sử dụng chia sẻ một máy tính đã người dùng, trong khi đó kiến trúc ngang hàng thuộc về danh mục mạng máy tính bao gồm các máy tính có vai trò như nhau, không tồn tại máy tính tận hiến cấp nguồn tài nguyên của chúng cho việc sử dụng chung
Trang 5Trong kiến trúc tập trung, tất cả các nguồn tài nguyển của hệ thống tính toán, bao gồm thông tin, được tập trung trong máy tính trung tâm, được biết như là máy tính lớn (máy tính lớn là một thành phần tập trung của hệ thống máy tính) Các thiết bị đầu cuối được kết nối đến máy tính tập trung bằng cáp được sử dụng như phương tiện chính truy cập đển những nguồn tài nguyên thông tin Vì một thiết bị đầu cuối là một thiết bị tương đối đơn giản, nó không đòi hỏi bất kì thao tác đặc biệt nào để thiết lập hay yêu cầu cấu hình phần mềm được thực hiện bởi người dùng cuối, khi mà không có phần mềm được lưu trữ trong thiết bị đầu cuối Việc điều khiển các thiết bị đầu cuối được thiết lập chủ yếu (cetrally) từ máy tính lớn, và tất cả thiết bị đầu cuối đều có cũng kiểu Vì vậy, đảm bảo được chương trình chạy trên một thiết bị đầu cuối bất kì có thể chạy trên tất cả các thiết bị đầu cuối trong cùng một cách
Về mặt lưu trữ dữ liệu và bảo mật xử lý dữ liệu, sự thuận lợi chính của kiến trúc tập trung đó
là mối quan hệ đơn giản của việc xây dựng và quản trị hệ thống bảo mật thông tin Điều này dẫn tới sự tập trung nguồn tài nguyên, vì điều đó mang lại sự dễ dàng để bảo vệ rất nhiều đối tượng nếu những đối tượng này được xác định ở một nơi hơn là chúng được phân bố ở những
vị trí khác nhau
Mặc dù có nhiều thuận lợi, những hệ thống tính toán đầu tiên có số điều hạn chế như thiếu sự uyển chuyển hệ thống, không thuận lợi sử dụng đối với người sử dụng cuối và chi phí cao Khi sử dụng những hệ thống tính toán với kiến trúc tập trung bắt đầu mất dần đi tầm quan trọng, mạng ngang hàng trở nên phổ biến hơn, bởi vì chi phí của các mạng này khá thấp Tuy nhiên, các mạng ngang hàng hiện nay kết nối các PC hơn nhưng máy tính đa người dùng Vì vậy, một thuộc tính chính của mạng ngang hàng đó là thiếu vắng các máy tính tập trung cung cấp nguồn tài nguyên của chính nó cho việc sử dụng chung
Những nhược điểm quan trọng của những mạng ngang hàng đó là sự thực thị, bảo mật và sự
an toàn ở mức thức của chúng, cũng như sự phức tạp trong quản trị Thêm vào đó, những nhược điểm này tăng lên khi số lượng các máy tính trong mạng tăng Vì vậy, kiến trúc mạng ngang hàng thích hợp cho việc kết nối số lượng máy tính ít với yêu cầu về sự an toàn và khả năng xử lý dữ liệu thấp
1.1.3 Kiến trúc khách/chủ cổ điển
Những nhược điểm của hệ thống máy tính tập trung và các mạng máy tính ngang hàng gần đây đã được loại bỏ bởi cấu trúc của các hệ thống máy tính dựa trên kiến trúc khách/chủ Kiến trúc này xuất hiện từ khoảng năm 1980, đánh dấu giai đoạn 2 trong tiến trình công nghệ tính toán Đặc trưng của của giai đoạn này là sự phân quyền kiến trúc của hệ thống máy tính tự trị
và sự tương kết của chúng trong các mạng máy tính toàn cầu
Kiến trúc phân quyền kết hợp với những hệ thống tính toán đầu tiên có thể là kết quả của sự xuất hiện các máy tính cá nhân, khác với các thiết bị đầu cuối đơn, những máy tính cá nhân có thể thực hiện rất nhiều các chức năng mà trước đây do máy tính trung tâm đảm nhiệm Kết quả của sự phân quyền này là có thể tạo nên các hệ thống máy tính toàn cầu hoặc cục bộ phân tán bao gồm các máy tính cá nhân và các máy tính cung cấp tài nguyên của nó cho các máy tính khác trong mạng dùng chung Các máy tính cung cấp tài nguyên của nó được gọi là máy chủ còn những máy tính sử dụng tài nguyên được chia sẻ gọi là máy khách Theo đó kiến trúc
hệ thống máy tính phân tán như vậy được biết đến như là kiến trúc khách/chủ (Hình 1.3) Các máy tính cá nhân có vai trò máy khách cũng được gọi là các trạm làm việc của mạng
Trang 6Hình 1.3: Kiến trúc khánh chủ Một máy chủ đặc trưng được miểu tả bởi loại tài nguyên mà nó quản lý Ví dụ, nếu nguồn tài nguyên là cơ sở dữ liệu thì máy chủ đó được coi như là máy chủ cơ sở dữ liệu, mục đích chính của nó đó là phục vụ các truy vấn của máy trạm cho việc xử lý dữ liệu Nếu nguồn tài nguyên là một hệ thống tệp, máy chủ được biết đến như là máy chủ tệp và mục đích của nó là chuyển các tệp tới các máy trạm Nói chung, các máy chủ có khả năng cung cấp các nguồn tài nguyên sử dụng chung, bao gồm cơ sở dữ liệu, các hệ thống tệp và một số dịch vụ khác được thực hiện bởi số các chương trình máy chủ Thêm vào đó, các máy chủ có thể cung cấp truy cập tới các thiết bị ngoại vi (ví dụ, máy chủ in ấn có thể cung cấp việc chia sẻ truy cập đến một máy in)
Chúng ta phân biệt giữa các mô hình kiến trúc khách, mỗi mô hình này tương ứng sự phân loại thích hợp của các thành phần của kiến trúc phần mềm bên trong các máy tính mạng Các thành phần phần mềm phân phối được phân biệt bởi chức năng mà chúng có khả năng cung cấp
Các chức năng của bất kì một ứng dụng phần mềm nào có thể được chia thành 3 nhóm sau đây:
Các chức năng liên quan tới đầu vào (input) và đầu ra (output)
Các chức năng ứng dụng, cụ thể tới từng vùng kiến thức (một vùng chuyên để giải quyết một vấn đề nào đó) của ứng dụng
Các chức năng quản lý dữ liệu Data mining
Bất kì một ứng dụng phân mềm hiện nay có thể được biểu diển bởi một cấu trúc bao gồm 3 thành phần sau:
Các thành phần trình diễn, mà nó thực thi giao diện người dùng
Các thành phần ứng dụng, thực thi các chức năng ứng dụng
Các thành phần cung cấp truy cập tới các người tài nguyên thông tin, thông tin
Các mô hình của kiến trúc khách chủ dưới đây được xác định, tương ứng với các phương thức phân phối của 3 thành phần phần mềm chính giữa các trạm làm việc và máy chủ mạng:
Chỉ có dữ liệu được lưu trữ trên máy chủ (Hình 1.4)
Trang 7Hình 1.4: Mô hình truy cập đến dữ liệu từ xa
Bổ sung dữ liệu, nhà quản lý tài nguyên được xác định trên máy chủ, ví dụ một hệ quản lý cơ sở dữ liệu (Hình 1.5)
Hình 1.5: Mô hình máy chủ điều khiển dữ liệu
Dữ liệu, quản lý tài nguyên, và các thành phần ứng dụng được tập trung trên máy chủ (Hình 1.6)
Trang 8dẫn tới quá tải trên mạng Chính vì lí do này, mô hình truy xuất dữ liệu từ xa chỉ có thể được
sử dụng cho các mạng khá nhỏ, với việc xử lý số lượng dữ liệu ít
Hình 1.5 chỉ ra mô hình thứ 2 của kiến trúc khách chủ, trong đó thông tin đã được lưu trữ trên máy chủ, đó là hệ thống quản lý tài nguyên (ví dụ DBMS) Đây là mô hình máy chủ điều khiển dữ liêu Các thành phần trình diễn và ứng dụng đã được kết hợp và thực thi trên máy trạm, hỗ trợ các chức năng hiển thị và dữ liệu đầu vào cũng như các chức năng ứng dụng Theo quy ước, việc truy cập đến các nguồn tài nguyên thông tin được cung cấp với các thao tác của ngôn ngữ đặc biệt (ví dụ, SQL trong trường hợp của các cơ sở dữ liệu) hoặc gọi các chức năng chứa trong các thư viện chương trình chuyên dụng Các câu truy vấn tạo ra các nguồn tài nguyên thông tin được gửi tới các trình quản lý tài nguyên Trình quản lý tài nguyên xử lý các truy vấn và trả về các khối dữ liệu cho máy trạm
Ưu điểm của mô hình máy chủ điều khiển dữ liệu so với mô hình truy cập dữ liệu từ xa đó là thông tin ít được truyền trên mạng hơn Đó là nhờ có việc lựa chọn các đơn vị thông tin được yêu cầu từ các tệp không được thực hiện trên máy trạm mà được thực hiện trên máy chủ Nói chung, tại thời điểm hiện tại, có rất nhiều công cụ phát triển, cung cấp phát triển ứng dụng nhanh, sử dụng một giao diện chuẩn, thao tác với DBMS hướng SQL Điều này cung cấp sự thống nhất, sự thao tác giữa các thành phần, và rất nhiều sự lựa chọn các công cụ phát triển phần mềm
Nhược điểm chính của mô hình điều khiển dữ liệu đó là không có danh giới rõ ràng giữa thành phần trình diễn và thành phần ứng dụng Điều này dẫn đến cản trở sự phát triển tiếp theo của hệ thống tính toán có kiến trúc xây dựng dựa vào mô hình này Hơn thế nữa, sự thay đối một thành phần yêu cầu sự thay đổi của toàn bộ hệ thống
Toàn bộ những thuận lợi và bất lợi của mô hình máy chủ điều khiển dữ liệu được liệt kê ở trên, có thể kết luận rằng dựa vào mô hình này là phù hợp nhất xây dựng những hệ thống tính toán hướng xử lý nội dung thông tin vừa phải, mà nội dung thông tin này không tăng theo thời gian Vì vậy, độ phức tạp của các thành phần áp dụng ứng dụng sẽ không cao
So với mô hình máy chủ điều khiển dữ liệu, mô hình khách chủ hai lớp thuận tiện hơn để điều hành Mô hình này đã được phát triển với giả thuyết rằng, việc thực hiện xử lý trên máy trạm được giới hạn đối với các chức năng trình diễn, trong khi các chức năng ứng dụng và truy cập
dữ liệu được thực hiện ở phía máy chủ Những chức năng ứng dụng có thể được thực hiện trong các chương trình riêng rẽ hoặc trong các thủ tục lưu trữ, được biết đến như là các thủ tục
cơ sở dữ liệu Những thủ tục này được lưu trữ trong cơ sở dữ liệu và được thực hiện trên máy chủ, nơi thành phần điều khiển truy xuất dữ liệu, tương đương nhân của DBMS cũng hoạt động
Ngược lại với mô hình máy chủ điều khiển dữ liệu, lợi ích của máy chủ tích hợp rất rõ ràng: đơn giản, hiệu quả cao, quản trị tập trung, và vì vậy giảm bớt việc sự dụng các nguồn tài nguyên mạng Từ những lợi ích này, có thể đi đến một kết luận đó là mô hình máy chủ tích hợp là tối ưu cho các mạng lớn hướng về xử lý số lượng lớn thông tin, hoặc sẽ là mô hình mong đợi trong thời gian tới
Khi các thành phần ứng dụng ngày càng phức tạp và sử dụng nhiều nguồn tài nguyên, một máy chủ riêng biệt (máy chủ ứng dụng) có thể được sử dụng Chính từ nhu cấu này đem lại
mô hình ba lớp của kiến trúc khách chủ Lớp đầu tiên chính là máy trạm, lớp thứ là máy chủ ứng dụng, và lớp ba chính là máy chủ điều khiển dữ liệu Kiến trúc khách chủ là hai lớp khi các thành phần ứng dụng được đặt trên máy trạm cùng với thành phần trình diễn (Hình 1.4, Hình 1.5), hoặc trên máy chủ cùng với trình quản lý tài nguyên và dữ liệu (Hình 1.6)
Trang 9Bên trong khung của máy chủ ứng dụng, một vài chức năng ứng dụng có thể được thực hiện, mỗi chức năng thiết lập mẫu các dịch vụ riêng biệt, cung cấp một vài chức năng cho bất kì chương trình có thể và muốn sử dụng chúng Có một vài máy chủ ứng dụng, mỗi máy chủ hướng về tập các dịch vụ xác định Bất ki một chương trình nào sử dụng dịch vụ đều được xem như là máy chủ Chi tiết thực hiện các chức năng ứng dụng trên máy chủ ứng dụng được
ẩn đi đối với máy trạm Các truy vận nhận từ các ứng dụng của máy trạm được đặt trong hàng đợi kết hợp với các máy chủ xử lý ứng dụng, tách và truyền truy vấn cho việc xử lý theo chế
Sự hiện diện của các đường rành giới giữa các thành phần của máy chủ phần mềm trong kiến trúc khách/chủ và sự phân phối cân bằng của các thành phần trong các máy tính của mạng cho phép mức như vậy mềm dẻo không có hiệu lực trong kiến trúc ngang hàng Như vậy, nguồn tài nguyên dành ở mức cao của sự thực thi và khả năng mở rộng và cải tiến chức năng của hệ thống có thể được thực hiện
Kiến trúc mạng khách/chủ, xuất hiện ở giai đoạn hai của sự tiến triển các cộng nghệ mạng máy tính còn được gọi là kiến trúc khách/chủ cổ điển Sau đây là một số mô tả chức năng của
mô hình này:
Máy chủ không sinh ra thông tin cuối cùng mà là dữ liệu, dữ liệu này tuy thuộc vào sự biên dịch bởi các máy trạm
Các thành phần của hệ thống ứn dụng được phân tán trong các máy tính trên mạng
Các giao thức riêng, không tương thích với TCP/IP, có thể được sử dụng giữa các máy trạm và máy chủ
Mỗi máy tính mạng được hướng thực thi các chương trình cục bộ
Chức năng cuối cùng nảy sinh đó là bảo mật thông tin Khi chỉ các chương trình cục bộ được thực hiện trên máy tính, sự di chuyển các chương trình trên mạng trong suốt quá trình xử lý các truy vấn được thực hiện bởi máy trạm đến máy chủ không xuất hiện Khả năng thực hiện các chương trình gây tác hại hoặc sự lây nhiễm máy tính sẽ giảm đi
Về mặt lưu trữ dữ liệu và xử lý bảo mật, kiến trúc khách/chủ có số bất lợi sau:
Phân phối vật lý của các thành phần của các chương trình ứng dụng và sự hỗn loạn, không tuân thủ qui tác của các hệ thống tính toán làm phức tạp xây dựng và quản trị
Trang 10 Với việc mất các thiết lập phần mềm của các máy trạm, thực hiện các thủ tục phức tạp cho việc kết nối lại và phối hợp máy tính này với phần còn lại của hệ thống là cần thiết, dẫn đến sự tăng thời gian phục hồi lỗi
1.1.4 Kiến trúc khách chủ dựa Web
Có rất nhiều điều bất lợi đối với các mạng máy tính dựa theo kiến trúc khách chủ cổ điển, những bất lợi này có thể được loại bỏ bởi bằng cách kết hợp các đặc tính tốt nhất của các hệ thống tập trung và các hệ thống khách chủ cổ điển Kiến trúc mới của các mạng máy tính được gọi là kiến trúc Intranet Nó còn được gọi là kiến trúc Web hay là kiến trúc khách chủ dựa vào công nghệ Web Kiến trúc này là kết quả nghiên cứu trong thời gian dài và phát triển trong lĩnh vực áp dụng Internet vào trong mạng cục bộ Sự xuất hiện của kiến trúc Intranet trong năm 1993 đã được cân nhắc cho việc bắt đầu của giai đoạn 3 trong sự tiến triển của các
hệ thống mạng máy tính
Chức năng chính của kiến trúc Intranet chính là các chức năng đã bị loại bỏ trong mô hình máy tính trung tâm trong giai đoạn hai của sự tiến triển các hệ thống tính toán Nèn tản của kiến trúc mới này đó là công nghệ
Công nghệ Web còn được gọi là “các văn bản Web”, mà các văn bản này được lưu trên máy chủ và được biên dịch và hiển thị bởi chương trình duyệt hoạt động trên máy trạm workstations (Hình 1.8) Các chương trình duyệt được gọi là trình duyệt Web
Hình 1.8: Kiến trúc khác/chủ dựa vào công nghệ Web Nói cách khác, một tài liệu Web biểu diễn các tài liệu siêu media, bao gồm các trang Web được nối với nhau bởi các liên kết Mỗi một trang Web có thể chứa các đối tượng và các liên kết tới các trang Web khác Theo qui luật đã định, một trang Web được biểu diễn bởi một tệp văn bản, với định dạng xác định mà chỉ rõ các liên kết tới các đối tượng khác và các văn bản Web, được xác định trên các host mạng khác nhau Thực ra, về bản chất một văn bản Web chứa chỉ một trang Web nhưng hợp lý nhất là nó có thể bao gồm số lượng lớn các trang, mà các trang này thuộc về các văn bản Web khác nhau
Một trang Web có thể chứa văn bản và hình ảnh Không giống như văn bản giấy, trang Web
có thể là tương tác với các chương trình máy tính và có thể chứa các liên kiết đến những đối
Trang 11tượng khác Bất kì link nào chứa trong một trang Web được đánh dấu bởi màu và/hoặc dấu gạch chân
Hệ thống các siêu liên kết dành được dựa vào yếu đó đó là các vùng lựa chọn của tài liệu, được biểu diễn bởi text, ảnh, hoạt động như các liên kết đến các đối tượng được kết nối logic đến chúng Vì vậy các đối tượng liên kết có thể được lưu trữ tại vị trí bất kì nào trên mạng Một trang Web có thể chứa liên kết đến một số kiểu đối tượng sau:
Các phần khác của một tài liệu Web
Các tài liệu Web hoặc các tài liệu có định dạng khác (ví dụ tài liệu bảng tính, soạn thảo), mà các tài liệu này có thể được xác định trên bất kì máy tính nào trên mạng
Các đối tượng Multimedia, bao gồm các ảnh, âm thanh và video
Một chương trình sẽ được thực thi trên máy chủ sau kích vào liên kết
Một chương trình được truyền tới cho máy trạm bằng trình duyệt từ máy chủ và được biên dịch và thực thi trên máy trạm
Các dịch vụ khác, bao gồm e-mail, sao chép các tệp thông qua mạng, tìm kiếm thông tin vv
Từ những định nghĩa về tài liệu Web, dễ dàng cho các chương trình điều hướng, thực hiện trên các máy trạm , không bị hạn chế hiển thị các trang Web và thực hiển truyền tới các đối tượng khác Chương trình điều hướng có thể là chương trình thực sự trên máy chủ và thông dịch hoặc chạy các môdun có khả năng thực thi liên quan tới tài liệu Web trên máy trạm Việc truyền các tài liệu và các đối tượng từ máy chủ đến máy trạm sau khi các yêu cầu từ trình duyệt được xử lý bởi một chương trình hoạt động trên máy chủ, chương trình này được gọi là máy chủ Web Để nhận được các tài liệu hoặc các đối tượng từ máy chủ Web, trình duyệt gửi một truy vấn thích hợp tớ cho máy chủ Nếu có đủ quyền hạn, một kết nối logic được thiết lập giữa máy trạm và máy chủ Sau đó, máy chủ xử lý truy vấn, truyền kết quả về cho trình duyệt Web và hủy bỏ kết nối
Máy chủ Web hoạt động như là bộ tập trung thông tin làm nhiệm vụ truyền thông tin từ các nguồn tài nguyên khác nhau và biểu diễn chúng cho người sử dụng trong một cách thức đồng nhất Trình duyệt cho phép người sử dụng xem thông tin mà không phụ thuộc vào định dạng của thông tin
Để kết nối kiểu dữ liệu phân tán và kiểu dữ liệu khác, các tài liệu Web cho phép cân nhắc thông tin với yêu cầu đầy đủ chi tiết, làm đơn giản hóa phân tích các nội dung thông tin Điều này rất hợp lý để tập trung quan tâm tới khía cạnh quan trọng của dữ liệu, và nghiên cứu tài nguyên đã lựa chọn một cách chi tiết
Kiến trúc Intranet có một vài ưu điểm:
The following distinctive features of Intranet architecture should be emphasized:
Thông tin cuối cùng dành để hiển thị cho người dùng xem bằng chương trình duyệt được tạo trên máy chủ
Tất cả nhưng nguồn tài nguyên và hệ thống ứng dụng được tập trung trên máy chủ
Các giao thức của bộ giao thức TCP/IP sẽ được sử dụng cho việc trao đổi dữ liệu giữa máy chủ và các máy trạm
Điều khiển tập trung không chỉ trên máy chủ mà còn cho máy trạm rất thuận lợi, vì chúng đã được chuẩn về mặt phần mềm
Các máy trạm có thể thực thi các chương trình từ những máy tính khác trên mạng
Trang 12Tất cả những chức năng này, loại trừ chức năng cuối cùng, trợ giúp giải quyết vấn đề bảo mật thông tin
Sự tập trung tất cả nguồn tài nguyên thông tin và các hệ thống ứng dụng trên máy chủ làm đơn giản trong việc xây dựng và quản trị của hệ thống bảo mật và bảo vệ các đối tượng ở cùng một nơi sẽ được thực hiện một cách dễ dàng hơn so với kiến trúc phân tán
Việc sử dụng chuẩn mở TCP/IP cho việc trao đổi thông tin giữa các máy tính trong mạng dẫn đến việc thống nhất các phương thức tương tác giữa các trạm làm việc và máy chủ Điều này không mang lại lợi ích để giải quyết vấn đề của việc cung cấp trong đổi thông tin an toàn giữa các ứng dụng máy chủ trên các máy tính Giải pháp cho an toàn tương tác phát triển cho từng mính tính sẽ thích hợp đối với tất cả ứng dụng
Sự thuận lợi của điều khiển tập trung của các máy trạm từ máy chủ làm giảm các lỗi không mong đợi có thể xảy do người dùng, điều hành, và quản lý Nhưng lỗi như vậy là một trong sự
đe dọa chính đối với àn toàn thông tin, dẫn đến sự phá hoại Ví dụ, việc nhập dữ liệu đầu vào không chính xác gây ra ngừng chạy chương trình Những lỗi này tạo ra chỗ yếu có thể bị khai thác
Trong kiến trúc Intranet, giả xử các chương trình xử lý thông tin phân tán vẫn được sử dụng
từ máy chủ có thể được thực hiện trên máy trạm Hệ thống như vậy của việc xử lý phân tán cho phép tập trung tất cả các hệ thống ứng dụng trên máy chủ Tuy nhiên, khả năng các chương trình thực hiện từ máy chủ trên máy trạm sinh ra nhiều sự đe dọa mới từ an toàn thông tin (ví dụ, sự đe đọa đó là thay thế chương trình truyền từ máy chủ [1,14] Ví vậy, khả năng di trú các chương trình bổ sung thêm nhiều yêu cầu để duy trì bảo mật trên mạng
• Sao chép các tệp từ máy chủ về máy trạm và ngược lại (FTP)
• Cung cấp một phiên ảo trên máy chủ (Telnet)
• Truy cấp thực đơn đa cấp tới các nguồn tài nguyên máy tính (Gopher)
Trang 13Hình 1.9: Lược đồ tổng quát của sự tương tác giữa trình duyệt và máy chủ
Việc truy cập tới các dịch vụ đặc biệt này là khả thi, vì trên thực tế, ngay từ đầu, các chương trình định hướng Web đã được thiết kế như là các chương trình đa giao thức mà có thể cung cấp một giao diện chung cho phép truy cập đến rất nhiều các nguồn tài nguyên mạng Hiện này, các chương trình định hướng Web phổ biến nhất hiện nay đó là Firefox, Internet Explorer, Opera, Mozilla, Netscape navigator,… Các chương trình Web phụ trợ được sử dụng
để thu được dữ liệu thống kê từ máy chủ Web cho việc định chỉ số thông tin chứa trong máy chủ Web, hoặc cho mục đích cập nhật các cơ sở dữ liệu cho các cơ chế tìm kiếm
Trong lược đồ tương tác với các công nghệ Web, máy chủ Web hoạt động như một chương trình máy chủ chính Chương trình này được chạy trên máy chủ và thực hiện xử lý các truy vấn đến từ các trạm Web Sự tương tác giữa các trạm Web và các máy chủ Web được thiết lập theo tập các luật được xác định bởi giao thức truyền siêu liên kết (HTTP) Khi thực thi, máy chủ Web điều khiển một cổng logic trên mạng, mà cổng này được gán mặc định bằng 80, và coi như bất kì các thông báo nào gửi tới cổng này được chuyển tới máy chủ Web
Khi nhận được một truy vấn từ Web client, máy chủ Web thiết lập truyền thông sử dụng TCP/IP và trao đổi thông với Web client theo giao thức HTTP Nếu Web client yêu cầu truy cập thông tin được bảo vệ trên máy chủ Web, máy chủ Web có thể yêu cầu định danh người dùng và mật khẩu Các tài liệu Web được bảo vệ sẽ chỉ hiển thị đối với những người dùng có các quyền truy cập thích hợp
Các tài liệu nhận được bởi trình duyệt từ máy chủ Web tương ứng với các tệp văn bản được viết bằng ngôn ngữ đặc biệt, gọi là ngôn ngữ đánh dấu siêu văn bản (HTML) Ngôn ngữ này bao gồm tập các qui định về định dạng văn bản (trong bất kì một ngôn ngữ nào) và cách hiển thị trong của sổ của trình duyệt Web Việc đánh dấu xác định định dạng, cũng như điều khiển cách liên kết tới bất kì đối tượng và đồ họa sẽ được hiển thị Cùng với ngôn ngữ đánh dấu, các chương trình được viết bằng ngôn ngữ kịch bản JavaScript và VBSCript có thể được chèn vào bên trong tài liệu Web và trình duyệt Web sẽ biên dịch khi nạp và hiển thị tài liệu Web
Để truy cập tới thông tin mà máy chủ không thể xử lý trực tiếp (ví dụ: truy cập cơ sở dữ liệu), một hệ thống cổng phần mềm sẽ được sử dụng Cổng phần mềm, nhận truy vấn từ máy chủ Web, xử lý truy vấn, hoặc hoạt động như proxy giữa máy chủ Web và máy chủ khác (ví dụ: máy chủ DBMS) Cổng phần mềm phát triển theo các chuẩn đặc biệt xác định các phương thức để máy chủ có thể gọi các ứng dụng hoặc các hàm từ các thư viện liên kết động,và hơn
Trang 14thể nữa cách thức của trao đổi thông tin với đối tượng chương trình Giao diện cổng chung (CGI-Common Gateway Interface) là một trong nhưng các chuẩn phổ biển này
1.2.1.2 Xử lý truy vấn từ Web Client
Các bước xử lý bởi máy chủ khi xử lý truy vấn nhận được từ Web Client:
1 Trình duyệt Web hoặc Web client khác, gửi truy vấn đến máy chủ Web, yêu cầu tài nguyên thông tin Truy vấn này được gửi trong định dạng HTTP, trong khi địa chỉ của nguồn tài nguyên yêu cậu được xác định trong định dang URL
2 Sau khi nhận được truy vấn từ máy trạm, mấy chủ Web xác định sự tồn tại của các nguồn tài nguyên được yêu cầu trong nguồn tài nguyên cục bộ, có nghĩa là trong nguồn tài nguyên mà máy chủ điều khiển
3 Nếu nguồn tài nguyên yêu cầu có sẵn, máy chủ Web kiểm tra quyền truy cập vào nguồn tài nguyên này và nếu quyền truy cập không vi phạm, máy chủ Web trả về nội dung của nguồn tài nguyên đến cho Web client
4 Nếu yêu cầu của Web client can thiệp các quyền truy cập tài nguyên, máy chủ Web từ chối truy vấn và tra về cảnh bảo thích hợp cho client
5 Nếu nguồn tài nguyên yêu cầu không nằm trong nguồn tai nguyên cục bộ trên máy chủ Web, máy chủ xác định thông tin về vị trí nguồn tài nguyên từ các tệp cấu hình của nó, kể cả việc xây dựng lại (Hình 1.10)
Trang 15Hình 1.11: Sử dụng máy chủ Web như máy chủ proxy
8 Sau khi trả về thông tin yêu cầu cho máy trạm, máy chủ Web hủy bỏ kết nối
Máy chủ Web có thể được sử dụng để giải quyết các vấn đề lớn Điển hình, các chức năng sau được hỗ trợ trên các máy chủ:
Hỗ trợ cơ sơ dữ liệu văn bản phân cấp, xử lý truy vấn và điều khiển truy cập tới thông tin từ các chương trình phía client
Tiền xử lý dữ liệu trước khi trả lời một truy vấn
Tương tác với các chương trình mở rộng và các máy chủ khác, ví dụ, các cơ chế tìm kiếm
Phần lớn các mô hình máy chủ Web như Netscape's Enterprise Server, Microsoft's Internet Information Server bổ sung giao thức mã hóa Secure Socket Layer (SSL), duy trì sự riêng tư, tính toàn vẹn, tính xác thực của dữ liệu truyền trên mạng Giao thức SSL cũng được bổ sung trong các trình duyệt Web Chức năng này cung cấp một môi trường an toàn cho việc sử dụng công nghệ Web trong các mạng máy tính
1.2.2 Xử lý thông tin phân tán trên nền tảng cả các chương trình dễ biến đổi
Một trong các chức năng quan trọng của kiến trúc Intranet đó là việc xử lý thông tin phân tán trên nền tảng của những chương trình dễ biến đổi Chương trình hướng Web chạy trên máy trạm không chỉ hiển thị các trang Web và thực hiện các chuyển tiếp tới các nguồn tài nguyên khác mà nó có thể kích hoạt các chương trình trên máy chủ, thông dịch và thực thi chúng, khi tài liệu Web được thực thi những đòi hỏi Các chương trình này được truyền cùng với tài liệu
từ máy chủ Kiểu xử lý thông tin phân tán này đảm bảo ràng bộc của toàn bộ hệ thống ứng dụng trên máy chủ
Có 3 kiểu chương trình chính có thể được kết hợp với tài liệu Web và truyền tới máy trạm để thực thị:
Java applet được thực thi bởi công nghệ Java
Các chương trình được viết bằng các ngôn ngữ kịch bản như JavaScript, VBScript, VRML
Các thành phần ActiveX, liên quan tới công nghệ ActiveX
Trang 16Thực tế là, tồn tại một vài loại chương trình dễ biến đổi có thể được miểu tả bởi các khả năng chức năng khác nhau của chúng, và hơn thể nữa bởi sự cạnh tranh giữa các công ty trong lĩnh vực chương trình và các côn nghệ mạng như Sun Microsystems, Netscape và Microsoft corporations, và các công ty khác
1.2.2.1 Công nghệ Java
Java được thiết kế bởi Sun Microsystem vào những năm 1990, đáp ứng đòi hỏi các chương trình máy tính hướng môi trường mạng và tích hợp công nghệ Web Động lực phía sau công nghệ Java đưa ra các yêu cầu kết hợp của sự dễ biến đổi, độc lập phần cứng và các nền tảng,
an toàn và tin cậy trong việc xử lý thông tin
Java là ngôn ngữ lập trình hướng đối tượng dựa vào nền tảng của ngôn ngữ C++, loại bỏ đi nhưng chức năng không cần thiết, bổ sung thêm chức năng cung cấp sự an toàn và tin cậy của thao tác điện toán phân tán Có rất nhiều chức năng trong Java vay mượn từ ngôn ngữ đối tượng C và Samlltalk Để giảm độ phức tạp lập trình và số lỗi trong mã, Java đưa ra sự chính xác của kiểu dữ liệu, hướng đội tượng một cách chặt chẽ Tất cả phần tử dữ liệu được lưu trong các đối tượng, và tất cả hàm bao gồm các phương của vài đối tượng Kiểu đơn vị thông tin chính xác cho phép phát hiện lỗi kết nối kiểu dữ liệu không tương thích tại bược biên dịch Hướng tiếp cận module đối với thiết kế chương trình, thực thi trong ngôn ngữ và sự đơn giản của ngôn ngữ, không những cho phép phát triển nhanh các chương trình mới mà còn cập nhật ứng dụng được viết trước đó và kiểm tra trong Java Hơn thế nữa, Java đưa ra việc cập nhật hiệu quả cho các chương trình cũ được viết bằng ngôn ngữ lập trình khác Việc bổ sung các phần tử ngôn ngữ chuẩn, Java bao gồm số các thư viện, từ đó có thể xây dựng các hệ thống tính toán với mọi độ phức tạp Tập hợp các chuẩn thư viên có thể được bổ sung liên tục với các hàm mới
Máy ảo Java, nó thực thị các chương trình Java thông qua bộ thông dịch, độc lập phần cứng
và hệ điều hành Xử lý thông tin một cách an toàn và tin cậy được tách riêng khỏi máy ảo Kiến trúc máy ảo, sự trình diễn của các mục dữ liệu và hệ thống câu lệnh được xác định Bộ vi
xử lý Java ảo cung cấp môi trường đầy đủ cho việc thực thi một chương trình Java Vì thế, tất
cả chương trình Java phải đáp ứng các đặc tả của bộ vi xử lý trừu tượng, bộ vi xử lý trừu tượng xác định tập các chỉ thị độc lập máy tính của nó, kiểu dữ liệu, và các thanh ghi được xử dụng Nguồn của chương trình Java được dịch thành mã độc lập máy gọi là mã byte, sau được được biên dịch bởi bộ vi xử lý trừu tượng, được thực hiện bởi bộ vi xử lý Java ảo
Biên dịch chương trình Java dành cho sự thực thi trên máy trạm trong môi trường của trình duyệt gọi là applet Java hoặc đơn giản hơn là applet Theo bản chất của applet, mọi applet đại diện chương trình nhỏ, trong đó một vài chức năng bắt buộc sẽ được xác định Applet được nạp từ máy chủ thông qua mạng và được thực thi trong trình môi trường trình duyệt (Hình 1.12) Các liên kết đến applet được xác định trong tài liệu Web, những applet không chứa trong thành phần tài liệu Web Thay vào đó, applet được lưu trữ ở tệp riêng biệt trên máy chủ
Trang 17Hình 1.12: Truyền và thực thi các chương trình Java độc lập máy
Sự độc lập của mã byte Java đối với phần cứng và hệ điều hành có khả năng thực hiện được bởi sự thực hiện chương trình của bộ vi xử lý Java ảo Điều này dùng cho thông dịch các applet cho từng nền tảng
Mã byte của các chương trình Java có một số chức năng sau:
Mã dễ dãng thông dịch trực tiệp mã máy cho bất kì nền tảng phần cứng nào
Chiều dài trung bình của câu lệnh trong mã byte ngắn tối thiểu, vì thế giảm độ phức tạp và kích cỡ của applet Java khi so sánh với các chương trình thực thi bình thường
Mỗi mã byte của chương trình chứa thông tin đây đủ chương trình cho phép mã này được kiểm tra một cách an toàn cho việc thực thi
Mã byte được phát triển làm giảm chiều dài trung bình của chương trình một mức hợp lý nhất
Bộ vi xử lý Java ảo có kiến trúc ngăn xếp và thành ghi nhỏ và thường xử dụng định địa chỉ gián tiếp Vì thế, phần lớn các câu lệnh chiếm byte đơn Nói chung, các bộ vi xử lý Java có tập các chỉ thị cho từng kiểu dữ liệu Do vậy, chiều dài trung bình của câu lệnh Java chỉ có 6 byte Chiều dài trung bình của câu lệnh cho bộ vi xử lý RISC sắp xỉ 4 byte
Hai chức năng quan trọng được quy định cho tốc đô cao thực thi an toàn và tin cậy của applet
Kiểm tra mã byte để đảm bảo sự toàn vẹn và hợp thức của các chỉ thị trước khi thực thi
Điều khiển vào khóa các thao tác trong suốt thời gian thông dịch mã byte
Việc nạp và kiểm tra các mã byte thực hiện bởi chức năng đầu tiên, quản lý bảo mật của bộ vi
xử lý Java ảo thực hiện bởi chức năng thứ hai Quản lý bảo mật truy cập tới các tệp và nhóm thiết bị ngoại vị bằng applet và thực hiện các chức năng hệ thống như cấp phát bộ nhớ
Vi xử lý Java ảo cung cấp sự thực thị và các chức năng khác tác động độ tin cậy xử lý thông tin, ví dụ “tập hợp dữ liệu vô nghĩa” tương đương với việc giải phóng bộ nhớ Nói chúng, Java bôm gồm các chức năng có ích đối với các thao tác chính xác cho các đội tượng và nguồn tài nguyển trong các tính huống không mong đợi
Chu kì phần mềm applet tương tự như các chương trình viết bằng ngôn ngữ khác Tiến trình thực hiện applet khác với tiến trình của các chương trình thông thường khác (Hình 1.13)
Trang 18Hình 1.13: Chuẩn bị và thực thi Applet Java
Ví applet và các thành phần khác của hệ thống ứng dụng được lưu trên máy chủ, hệ thống hỗ trợ việc quản trị một cách dễ dãng hơn Vì thế, đảm bảo sử dụng lâu dài các chường trình cập nhật hàng ngày
Không chỉ các applet đại diện các chương trình luôn biến đổi có thể được viết bằng ngôn ngữ Java – các chương trình ứng dụng cũng có thể được viết bằng Java Tuy nhiên để dành được mức thực thi cao, mã nguồn của chương trình nên được biên dịch, không thành mã byte nhưng mã độc lập với máy cho phép thực hiện trực tiếp bởi các bộ vi xử lý máy trạm
Hiện nay, có rất nhiều công cụ phát triển cho applet và ứng dụng Java, bao gồm Microsoft Visual J++, Symantec Cafe, Borland Jbuilder, Sun Microsystems Java Workshop, và một số công cụ khác
1.2.2.2 Các công nghệ dựa vào sử dụng các ngôn ngữ kịch bản
Những công nghệ cho phát triển và ứng dụng của các chương trình biến đổi dựa vào sử dụng nhưng ngôn ngữ kịch bản xuất hiện xong xong với công nghệ Java Sự khác biệt quan trong giữa công nghệ kịch bản và Java chính là sự thông dịch theo dòng lệnh của chương trình kịch bản, thực hiện biên dịch thành mã byte trước khi thực thi (Để thực thi, các chương trình Java
di động phải được biên dịch thành mã byte.) Chức năng của bộ biên dịch chương trình di động viết bằng các ngôn ngữ kịch bản được thực hiện bởi trình duyệt Web
Bản chất của ngôn ngữ kịch bản (hay còn gọi ngôn ngữ macro) dễ dàng gở rối và phát triển chương trình Các ngôn ngữ kịch bản chính hiện thời dành cho viết chương trình biến đổi bao gồm:
Ngôn ngữ kịch bản JavaScript, được phát triển bởi Netscape và Sun Microsystems, và ngôn ngữ VBSCript của Microsoft
Ngôn ngữ mô tả thực tế ảo (Virtual Reality Modeling Language), được phát triển bởi Silicon Graphics
Trang 19Ban đầu, JavaScript xuất hiện trong trình duyệt Netscape Navigator 2.0 dưới cái tên
LiveScript Sau đó, Netscape loại bỏ tên này và bắt đầu làm việc với Sun Microsystems và đi
đến đồng ý sử dụng Java JavScript không đại diện ngôn ngữ Java, hai ngôn ngữ này có một
vài điểm chung, có khả năng gọi lẫn nhau (Bảng 1.1)
Bảng 1.1: Các đặc tả của Java và JavaScript
Java JavaScript
Chương trình phải được dịch thành mã byte
để thực thi ở phía client
Chương trình được thông dịch ở phía client ngay khi khởi tạo
Hướng đối tượng Applets bao gồm các đối
tượng miêu tả sử dụng các lớp cũng với tính
thừa kế
Dựa đối tượng Không có lớp cho cơ chế thừa kế
Các Applet được gọi từ các trang Web,
nhưng được lưu trữ riêng trong các tệp (nằm
ngoài văn bản Web)
Chương trình được gòi từ các trang Web, nhưng được xây dựng bên trong tài liệu Web
Tất cả kiểu dữ liệu và biến phải được miêu ta
trước khi xử dụng Các kiểu dữ liệu và biến không cần phải khai báo
Ràng buộc tính Các liên kết đối tượng phải
tồn tại tại bược biên dịch Ràng buộc động Các liên kết đối tượng được kiểm tra trong xuốt quá trình thực
Javascript là ngôn ngữ thông dịch, đơn giản, dựa vào các hàm hướng đối tượng Sự dễ dàng là
nguyên nhân … Bản chất hướng đối tương của Javascript được chứng tỏ bởi khả năng của
hoạt động với các cửa sổ trình duyệt, thanh trạng thái và các đơn vị khác của giao diện trình
duyệt và các đối tượng mạng trong hệ đẳng cấp Javascript không phải phong phú như ngôn
ngữ Java, nhưng nó thuận lợi hơn, hiệu quả hơn cho một số các tác vụ liên quan đến xử lý các
tài liệu Web và cho sự tương tác với người dùng khi hiển thị các tác vụ đó Đây là ngôn ngữ
với số lượng lớn về cậu lệnh và chức năng được xây dựng sẵn Các chương trình được viets
bằng Javascript có thể cung cấp các hộp đối thoại, thực hiện các phép toán học, chơi được các
tệp video, audio, tạo ra các tài liệu, xử lý các đối tượng button trong form và rất nhiều đối
tượng khác Cùng với sự trợ giúp của JavaScript, có thể thiết lập các thuộc tính va đặc tính
của nhưng thư viên nhị phân Java, và hơn thể nữa là các mô dun chương trình được bổ sung
vào trong trình duyệt
Các câu lệnh JavaScript được viết trực tiếp trong trang Web, và được thực hiện bởi trình
duyệt trong khi trang này được nạp, hoặc trong khi các thao tác mà người dùng thực hiện
tương tác với trang Web (ví dụ, khi click vào các đối tượng bằng chuột, vị trí của con trỏ
chuột tại vị trí liên kết, hoặc nhập dữ liệu trong các trường của mẫu HTML) Cũng như bất kì
công nghệ hay ngôn ngữ nào được sử dụng trong mạng máy tính, xử lý thông tin an toàn là
yêu tiên hàng đầu Mặc dù Javascript không được xem là ngôn ngữ có tính bảo mật cao, nó
đáp ứng được phần lớn các yêu cầu này Một vài chức năng dẫn đến việc dễ bị tấn công
không tồn tại trong ngôn ngữ Javascript, chính vì vậy cung cấp tính bảo mật theo một cách
thức không trực tiếp Các chương trình được viết trong JavaScript, cũng như trong Java, bị
ngăn cấm thực hiện các thao tác đối với các tệp cục bộ Vì vậy, một chương trình không có
khả năng thay đổi hoặc dành được quyền truy cập tới dữ liệu của người dùng Nói chung,
JavaScript không hỗ trợ các chức năng mạng Ví dụ, một chương trình không thể mở cổng
Trang 20TCP/IP, và chỉ có khả năng nạp các đối tượng tới địa chỉ đã cho và tạo ra dữ liệu truyền đến máy chủ Web Các trình duyệt cho phép người dụng thiết lập các mức an toàn và điều khiển các mức này, vì vậy các chương trình được viết bằng JavaScript chỉ có thể tập trung vào một vùng xác định thông tin
Những bất lợi của Javascript đó là tốc độ thực thị tương đối thấp, bởi vì bản chất thông dịch của ngôn ngữ Bất lợi này cũng chính là đặc tính của các ngôn ngữ lập trình biên dịch
Một vấn đề quan trọng cần chú ý đó là phiên bản của Netscape và Microsoft là khác nhau Sự khác nhau có thể dẫn tới sự không tương thích Vì vậy, khi viết các ứng dụng trong Javascript, cần kiểm trả sự tương thích dịch vụ trong môi trường của chương trình
Microsoft VBScript tương tự như Javascript trong rất nhiều khía cạnh VBScript là tập con của ngôn ngữ Visual Basic, hướng tới lập trình cho các trang Web Có thể phát triển rất nhiều đối tượng bao gồm các thành phần chương trình của các ngôn ngữ khác, trong trang Web trong khi sử dụng VBScript Ví dụ, applet Java và các điều khiển ActiveX có thể được lưu trong trang Web, để dễ dàng tương tác với người sử dụng
Không giống như Javascript và VBScript, ngôn ngữ VRML, được thiết kế bởi Silicon Graphics, được định hướng cụ thể trợ giúp tạo ra các chương tình thông dịch giả lập thế giới
ảo 3D Các trình thông dịch VRML được gắn vào bên trong trình duyệt, tương tự như các mô dun chương trình Các mã nguồn của chương trình trong ngôn ngữ VRML được lưu trong tệp VRML riêng và được gọi bởi liên kết từ văn bản Web khi đó nó được xem trong trình duyệt Kích vào liên kết như vậy dẫn tới mở của sổ riêng, cho phép người dùng thưởng thức chương trình
1.2.2.3 Công nghệ ActiveX
ActiveX là tập hợp các công nghệ của Microsoft tập trung vào việc bổ sung, tích hợp và thống nhất các phương thức biểu diễn và xử lý thông tin hiện thời trong mạng máy tính Công nghệ này được xây dựng sẵn phù hợp với kiến trúc Web Ý tưởng của các công nghệ ActiveX nằm
ở cách thức giống nhau của việc truy cập tới tất cả các nguồn tài nguyên thông tin (hình 1.14) Công nghệ Web được lựa chọn như là nền tảng cho cách thức đồng nhất của việc truy cập
Hình 1.14: Truy cập đồng bộ đến các nguồn tài nguyên thông tin mạng
Trang 21Theo triết lý ActiveX, trình duyệt Web sẽ trở thành một phần không thể thiếu của hệ điều hành Hơn thế nữa, các phương thức để dành được truy cập đến bất kì thông tin trên máy tính của người dùng, trên máy chủ của mạng cục bộ hoặc trên Internet sẽ là giống nhau, trong suốt đối với người dùng Khái niệm này được thực hiện trong phiên bản trình duyệt Internet Explorer 4.0
Về mặt phát triển các chương trình hay biến động, một mặt tập các công nghệ ActiveX là sự lựa chọn thay thế công nghệ Java và JavaScript, mặt khác nó là phần bổ sung thiết yếu cho các công nghệ Java và Javascript ActiveX không những cung cấp sự phát triển và thực thi của các chương trình di động, mà còn thực hiện nhiều khả năng bổ sung như gọi các hàm để xem và sửa Word, Excel, PowerPoint từ môi trường Web ActiveX tạo ra tập hợp các hàm API ( Application programming Interface - thực hiện cả phía trạm và chủ) có hiệu lực với các nhà lập trình và tác giả của tài liệu Web
ActiveX hỗ trở các kiểu chương trình di động sau, mà có thể được gắn vào tài liệu Web và truyền đến máy trạm để thực thi (hình 1.1.5)
Các điều khiển ActiveX
Hệ thống rộng lớn phần mềm của Microsoft hoạt động trên máy chủ đảm bảo tính hiệu quả của các công nghệ ActiveX, đặc biệt trên hệ điều hành Windows NT và IIS Sự tương tác máy chủ Web IIS với các ứng dụng, hệ thống quản lý cơ sở dữ liệu (DBMS) được cung cấp thông qua giao diện ISAPI (Internet server API) và CGI (Common gateway Interface) thực thi trong IIS
Điều khiển ActiveX miêu tả các chương trình có khả năng thực thi, mà các chương trình này
có thể được nạp từ máy chủ để thực hiện trên máy trạm Cũng như cách dùng Java applet, các liên kết đến các chương trình được xác định trong văn bản Web Điều khiển ActiveX không chứa các thành phần cấu tạo tài liệu Web Chúng được lưu trữ trong tệp riêng trên máy chủ
Trang 22Sự khác biệt của các thành phần điều khiển ActiveX so với Java applets:
Các chương trình ActiveX Controls bao gồm mã có khả năng thực thi, phụ thuộc vào nèn tảng “phần cứng-hệ điều hành) Mã byte của Java applet độc lập nền tảng
Các đơn vị nạp của ActiveX Controls giữ nguyên trên hệ thống máy trạm, ngược lại,
nó được nạp mồi khi Java applet được yêu cầu
Khi các chương trình ActiveX Controls không làm theo cách thức tương tư như Java applets dưới điều khiển của việc quản lý bảo mật, các chương trình có thể dành được truy cập tới đĩa và thực hiện các chức năng khác cho các ứng dụng
Vì các chương trình ActiveX Control là các ứng dựng đã được lập trình, các ứng dụng này có thể được phát triển và có thể thực hiện các thao tác cùng với sự trợ giúp của bất kì ngôn ngữ lập trình nào Vì mục đích này, các công cụ phát triển như Visual C++, Visual Basic, Delphi, Visual J ++ và một số ngôn ngữ khác có thể được sử dụng Microsoft đã phát triển một gói công cụ được gọi là Microsoft ActiveX Developent Kit (MADK)
Các thành phần ActiveX, cũng như các chương trình được viết bằng ngôn ngữ Javascript và VBScript có thể gọi các hàm API AcitveX để biểu diện số dịch vụ như sau:
Tạo ra tính hiệu qua đa phương tiện chất lượng cao
Mở và xủa đổi các tài liệu điện tử, bằng việc gọi các ứng dụng hỗ trợ chuẩn nhúng và liên kết đối tượng (OLE- Object linking, and embedding)
Truy xuất tới hệ điều hành để tối ưu các tham số thực thi của chương trình dành được
từ máy chủ
Những chương trình được viết bằng JavaScript và VBScript có thể tự động tương tác giữa nhiều đối tượng, bao gồm Java applets, thành phần ActiveX và các chương trình khác trên máy trạm, cho phép các đối tượng làm việc với nhau như là một phần của sự tích hợp, không gian Web động Có thể tạo ra ngôn ngữ macro tùy biết, và bổ sung bộ thông dịch vào trình duyệt IE, cùng với sự trợ giúp của thư viện liên kết động (DLL)
So sánh với Java, công nghệ ActiveX có những điểm lợi và bất lợi Điểm bất lợi chính là mức bảo mất thấp về mặt xử lý thông tin phân tán Các thành phần ActiveX nạp trong máy trạm có thể truy cấp tới bất kì phần nào của hệ thống, tương tự như đối với các ứng dụng thông thường Trong framework ActiveX, Microsoft đã thực hiện bảo vệ sự riêng tư dựa trên sự chứng nhận số Nhưng chứng nhận này cung cấp tính xác thực xác nhận các thành phần chương trình được nạp từ mạng Tuy nhiên, việc xác nhận tính xác thực không có nghĩa là xác nhận tính bảo mật Về khía cạnh bảo mật , lược đồ bảo mật của Activẽ có thể không hiệu quả khi người dùng nạp thành phần ActiveX từ Internet, đặc biệt nếu các thành phần này không rõ nguồn gốc
Cũng vào thời điểm đó, không giống như Java applets, các thành phần ActiveX cho phép thực hiện các hàm phù hợp phát triển chương trình ứng dụng Chức năng này là điểm lợi cho mạng công ty, với điều kiện phải giới hạn tính bảo mật thích hợp được thiết lập (ví dụ, đồng ý cho phép nạp các điều khiển ActiveX từ máy chủ công ty)
Về mặt thực thi, vì Java là ngôn ngữ thông dịch, Java applet được thực hiện trên máy ảo của
hệ thốn máy trạm với tốc độ thấp hơn so với các điều khiển ActiveX Controls Nhưng, về khía cạnh khác, Java applets rất cô đọng, vì thế nó được nạp rất nhanh Nạp các điều khiển ActiveX yêu cầu nhiều thời gian hơn Cần phải để ý rằng các chương trình Activex Control lưu lại trong hệ thống máy trạm, ngược lại nạp tất các Java applet mỗi lần mới Liên quan đến
Trang 23độ an toàn, thuộc tính này là một bất lợi, khi nó phân tán sự tập trung của hệ thống ứng dụng Nhưng nếu quan tam về khả năng thực hiện, đó là lợi thế của ActiveX so với Applet
Vì độc lập với phần cứng và OS, ActiveX ở vị trí thứ hai đối vớivới công nghệ Java Mặc dầu phát biểu của Microsoft đó là ActiveX cung cấp đa nền hộ trợ cho Macintosh, Windows, và các hệ điều hành Unix, công nghệ ActiveX hoạt động trên các nền tảng Windows tốt nhất, bởi
vì chúng được phát triển cho việc sử dụng các hàm xây dựng trong các hệ điều hành Windows Do đó, ActiveX có thể được xử dụng đối với toàn bộ khu vực trong hoạt động mạng dưới sự điều khiển của các hệ điều hành Windows
1.2.3 Truy xuất tới cơ sở dữ liệu quản hệ
Trong kiến trúc khách/chủ dựa vào công nghệ Web, máy chủ Web đóng vai trò như trung tâm thông tin, cung cấp thông tin từ nhiều nguồn mà sau đó, nó sẽ đệ trình tới người dùng theo một cách thống nhất, với sự trợ giúp của trình duyệt Sự tích hợp ngay thông tin không đồng nhất được thực hiện trong thời gian mường tượng và biên dịch các tài liệu Web Các thủ tục này được thực hiện bởi trình duyệt trong thời gian tương tác với máy chủ Web, cũng như với máy chủ khác cho việc đề trình các nguồn tài nguyên thông tin
Sự tương tác của trình duyệt với máy chủ của hệ thống quản lý cơ sở dữ liệu (DBMS server)
có thể được thiết lập trong 2 cách sau:
Truy cập đến máy chủ DBMS thông quá máy chủ Web
Truy cập trực tiếp tới máy chủ DBMS
1.2.3.1 Truy xuất tới máy chủ DBMS thông qua máy chủ Web
Để trình duyệt có thể truy cập tới máy chủ DBMS thông qua máy chủ Web, hệ thống các cổng chương trình được sử dụng (Hình 1.16) Các cổng chương trình nhận truy vấn từ máy chủ Web, hoạt động như máy chủ ủy quyền giữa máy chủ Web và máy chủ DBMS Các cổng chương trình đã được phát triển dựa vào các chuẩn đặc biết xác định cách thức gọi các ứng dụng hoặc các hàm DLL bởi máy chủ Web, hơn nữa xác định cách thức trao đổi thông tin với các đố tượng chương trình này Một trong chuẩn phổ biến nhất của kiểu này đó là Common Gateway Interface (CGI), FastCGI
Trang 24Hình 1.16: Truy xuất đến DBMS thông qua chương trình CGI
1.2.3.2 Giao diện CGI
Một chương trình CGI thích hợp phục vụ như một cổng chương trình giữa máy chủ Web và máy chủ DBMS, rất có ích cho sự truy cập của trình duyệt đến máy chủ DBMS thông quá máy chủ Web, theo các chuẩn CGI
Các ứng dụng CGI hoạt động động lập với máy chủ Web và thực hiện nhờ lời gọi từ việc xử
lý của các văn bản Web bởi trình duyệt Web Chương trình CGI tương tác với máy chủ Web bằng cách trao đổi các biến môi trường ở cả 2 phía thông qua các kênh vào/ra của các ứng dụng đã định sẵn
Vì các chương trình CGI làm việc độc lập, có giao diện phổ biến và đơn giản, các nhà phát triển văn bản Web có khả năng tạo các chương trình CGI trong bất kì ngôn ngữ hỗ trợ các thao tác vào/ra tệp chuẩn Hơn thế nữa, cũng với việc phát triển động lập, CGI có thể tạo các
ứn dụng có thể dễ dàng truyền từ máy chủ Web tới máy chủ khác Đặc biệt, có các chương trình CGI được thiết kế cho sự tương các của các máy chủ Web với các DBMS khác (ví dụ, chương trình WebDBC)
Các form HML cho phép người dùng truy vấn tới cơ sở dữ liệu, được sử dụng như là giao diện giữa trình duyệt và máy chủ DBMS Các form này chứa trong các tài liệu Web Chương trình CGI thu được thông tin từ máy chủ Web thông qua các biến môi trường hoặc đầu vào chuẩn Điều này phụ thộc vào phương thức truy cập được sử dụng tại thời điểm dữ liệu truyền giữa trình duyệt và máy chủ Web Sau đó, chương trình CG truy cập máy chủ DBMS thông qua trình điều khiển Open Database Connectivity (ODBC) và trả về câu trở lời đến truy vấn máy chủ Web, thông qua đầu ra chuẩn
Trình điều khiển ODBC cung cấp một phương thức duy nhất truy cấp tới các DBMS khác nhau bằng ngôn ngữ truy vấn chuẩn (SQL) Bởi các ứng dụng chuẩn ODBC, trình điều khiển ODBC chỉ có thể sử dụng SQL và tương tác với DBMS hỗn hợp Không thể truy xuất tới DBMS nếu không có trình điều khiển ODBC, nhưng trong trường hợp này, chương trình CGSI sẽ được hướng điều hành DBMS xác định trên máy chủ
Vì vậy, các nhà phát triển ứng dụng CGI không cần thiết biết về tổ chức của một máy chủ Web Hơn thế nữa, điều này không cần thiết để sử dụng các ngôn ngữ phức tạp như C++
Trang 25Chương trình CGI có thể được viết bằng ngôn ngữ phổ biến như Perl Yêu cầu chính đó là tuân thủ theo quy đinh chuẩn CGI
Một trong nhược điểm của chuẩn CGI đó là khả năng xử lý truy vấn quá chậm trong khi sự đòi hỏi ngày càng lớn Mỗi lần chương trình CGI được gọi, nó phải được nạp vào đĩa (tương đương với một lần chạy mới) và điều này làm ảnh hưởng tới khả năng thực thi của chúng Sau khi chương trình kết thúc, nó sẽ giải phóng các nguồn tài nguyên nó đã sử dụng trước đó
1.2.3.3 Giao diện FastCGI và API
Để tránh gặp phải các vấn đề liên quan tới tốc độ của CGI, rất nhiều nhà cung cấp máy chủ Web đã bổ sung thêm các API thích hợp Hãng Microsot phát triển giao diện ISAPI (Internet Server API), còn hãng Netscape đưa ra giao diện NSAPI (Netscape Server API)
Những giao diện này được tích hợp vào trong máy chủ Web, cho phép người dùng theo dõi, quản lý truy cập đối với dữ liệu và tiến trình được sử dụng liên tục Những chương trình có giao diện ISAPI được biên dịch trong tệp DU Các tệp này được nạp trong bộ nhớ trong lúc gọi các tệp này lần đầu tiên và sẽ không cần thiết sinh ra một tiến trình mới cho lần gọi tiếp theo của những chương trình này Các hàm giao diện NSAPI được nạp trong khoảng trống tiến trình của máy chủ Do vậy, vào lúc gọi tới các hàm này, không có tiến trình nào được sinh ra Do là giao diện API, chương trình sử dụng nó có thể loại bỏ tiến trình mở kết nối tới DBMS, vì vậy truy vấn tiếp theo tới cơ sở dữ liệu không phải mất thời gian chờ đợi để mở và đóng một kết nối
Tuy nhiên, sử dụng các giao diện API của các máy chủ Web rất ít điểm lợi Phần lớn các ứng dụng không thể chuyển từ một API này sang API khác, và hiếm khả năng chuyển các ứng dụng tới các nền tảng khác Hơn thế nữa, phần lớn các ứng dụng máy chủ Web vẫn được phát triển cho giao diện CGI, vì vậy việc chuyển sang các ứng dụng dựa vào API là một quyết định đứng đắn về phương diện tài chính Để giải quyết vấn đề CGI, có thể sử dụng đặc tả FastCGI Đặc tả này xuất phát từ yếu tố đó là ứng dụng sử dụng chế đế tham số và truyền dữ liệu được
sử dụng trong CGI nhưng không xóa bộ nhớ và giữ nguyên lưu trữ trong khi xử lý đầu vào Chính vì vậy, những ứng dụng dựa vào FastCGI, các chương trình giống CGI, làm việc không quan tâm đến máy chủ Web, và được chạy thông qua các liên kiết chuẩn trong những tài liệu Web Những, giống như những chương trình dựa vào API, những chương trình FastCGI hoạt động liên tục Khi một chương trình hoàn thành xử lý truy vấn tiếp theo, nó vẫn duy trì mở và đợi truy vấn mới
Khi một trình duyệt dành được truy cập đến cơ sở dữ liệu quan hệ thông qua giao diện CGI, một lược đồ được tạo ra trong đó 3 máy chủ được sử dụng: máy chủ Web, chương trình FastCGI và máy chủ cơ sở dữ liệu Máy chủ Web nhận truy vấn từ trình duyệt, truyền truy vấn tới chương trình CGI, chương trình CGI truy xuất lần lượt tới máy chủ cở sở dữ liệu Kết quả trả về thông qua đường dẫn trở về
1.2.3.4 Truy xuất tới máy chủ DBMS
Để truy xuất trực tiệp từ trình duyệt tới máy chủ DBMS, có thể sử dụng Java kí sinh (Hình 1.17) (Java Applets), những điều khiển ActiveX (Hình 1.18), và những môdun chương trình chuyên dụng kết nối đến trình duyệt (plugin)
For direct access from the Web browser to the DBMS server, you can use both Java applets and ActiveX controls and specialized program modules connected to the browser (plug-ins)
Trang 26Hình 1.17: Truy xuất đến DBMS cùng với sự trợ giúp của Appet
Hình 1.18: Truy xuất đến DBMS cùng với sự trợ giúp của ActiveX control
Giao diện kết nối cơ sở dữ liệu Java (JDBC) được phát triển để sử dụng các Java applet truy cập tới máy chủ DBMS khác nhau Việc đưa ra giao diện được định hướng hỗ trợ tương tác với máy chủ DBMS, không chỉ cho Java applet thực thị trên máy trạm chủ mà cho phép chương trình Java thực thi trên máy chủ
Truy cập từ trình duyệt tới máy chủ DBMS cũng có thể được thực hiện bởi kiều khiển ActiveX, cũng như trường hợp sử dụng Java applet, truy vấn và truyền chương trình thích hợp trên máy trạm, và được thực thị trên máy trạm Trong trường hợp này, sự tương tác với máy chủ DBMS sẽ được thực hiện thông qua giao diện ODBC
Để sử dụng các môdun chương trình chuyên dụng kết nối đến trình duyệt (plugin) cho phép truy cập từ trình duyệt Web đến máy chủ DBMS, cần cài đặt chương trình thích hợp trên máy trạm Sau đó, sự tương tác máy chủ DBMS sẽ nhân ra phần mềm đã cài đặt đó và dành được điều khiển từ trình duyệt Web, trong khi xử lý lời gọi thích hợp trong tài liệu Web Để tránh
sự không tương thích, sự tương tác của các môdun chương trình kết nối với máy chủ DBMS cũng như với các thành phần ActiveX nến được thực hiện thông qua giao diện ODBC
Trang 27Chương II Ngôn ngữ HTML
2.1 Khái niệm về ngôn ngữ HTML
HTML (Hypertext Markup language) là ngôn ngữ định dạng siêu liên kết,cho phép định dạng văn bản, bổ sung hình ảnh, và video, cũng như lưu tất cả vào một trong tập tin dưới dạng văn bản hay dưới dạng mã ascii
Tên gọi ngôn ngữ dánh dấu siêu văn bản phản ánh đúng thực chất của công cụ này
– Markup : HTML là ngôn ngữ của các thẻ đánh dấu - Tag Các thẻ này xác định cách thức trình bày đoạn văn bản tương ứng trên màn hình
– Language : HTML là một ngôn ngữ tương tự như các ngôn ngữ lập trình, tuy
nhiên đơn giản hơn Nó có cú pháp chặt chẽ để viết các lệnh thực hiện việc trình diễn văn bản Các từ khoá có ý nghĩa xác định được cộng đồng Internet thừa nhận
và sử dụng Ví dụ b = bold, ul = unordered list,
– Text : HTML đầu tiên và trước hết là để trình bày văn bản và dựa trên nền tảng là một văn bản Các thành phần khác như hình ảnh , âm thanh, hoạt hình đều phải "cắm neo" vào một đoạn văn bản nào đó
– Hyper : HTML cho phép liên kết nhiều trang văn bản rải rác khắp nơi trên Internet Nó có tác dụng che dấu sự phức tạp của Internet đối với người sử dụng, có thể đọc mà không cần biết đến văn bản đó nằm ở đâu, xây dựng phức tạp như thế nào Sự phát triển có tính bùng nổ của Internet trong thời gian vừa qua một phần lớn là nhờ vào WWW
–
z Hyperlink: dùng để liên kết các tài liệu này đến tài liệu khác hoặc liên kết đối với bất
kì đối tượng nào trên Web như văn bản, hình ảnh, âm thanh Chỉ cần click chuột vào siêu liên kết, tài liệu được liên kết sẽ được hiển thị
2.2 Lập trình Web với ngôn ngữ HTML
2.2.1 Các thành phần cơ bản của html
Thể (tag): là một tập các ký hiệu được định nghĩa trong HTML có ý nghĩa đặc biệt Thẻ bắt
đầu bằng ký hiệu < và kết thức bởi ký hiệu >
• Cú pháp <tênthể thuộctính=“giátrị”,…>Nội dung</tênthể>
• Ví dụ: <bg clear = “left”> Nôi dung</bg>
Phần tử (element): có 2 loại phần tử trong HTML
• Phần tử chứa nội dung: bao gồm thể đóng và thẻ mở
o Ví dụ: <p>Nội dung </p>
• Phần tử rỗng: bao gồm 1 thể
o Ví dụ: <br>
Thuộc tính(properties): mỗi thể bao gồm một hoặc nhiều thuộc tính đi kèm Thuộc tính được
nhập vào ngày trước dấu ngoặc đóng(>) của thẻ Có thể sử dụng nhiều thuộc tính trong một thể Thuộc tính này kế tiếp thuộc tính khác, phân cách nhau bởi khoảng trắng
Trang 28• Ví dụ: <table border=“1”>
Giá trị: Ngoài các thuộc tính không có giá trị còn có các thuộc tính của tag có giá trị Ví dụ:
thuộc tính CLEAR của tag <BR> có ba giá trị lựa chọn: left,right, all
Thể lồng nhau: dùng để chỉnh sửa cách trình bày nội dung trong một trang Web Trật tự sắp
xếp của những tag lồng nhau đó là thể được mở đầu tiên sẽ là thẻ đóng sau cùng
• Ví dụ: <H1> Phần <I>Nội dung</I><H1>
Khoảng trắng: Trình duyệt bỏ qua các khoảng trắng
Tên tệp tin: phải đặt tên tệp tin với phần mở rộng là “.htm” hoặc “.html” điều này giúp trình
duyệt định ra loại tài liệu khi duyệt Để tạo một trang Web, chúng ta có thể sử dụng bất kỳ một trình soạn thảo nào để tạo ra một trang Web
2.2.2 Cấu trúc tệp HTML
Một trang Web luôn bắt đầu bằng thể <HTML> và kết thúc bởi thể </HTML>
Các trang Web được chia thành 2 phần
• Phần đầu: được đặt giữa hai thẻ <HEAD> và thể </HEAD> - định ra tiêu đề, nội dung của tiêu để
• Phần thân: đặt giữa 2 thể <BODY> và </BODY> - chứa nội dung của trang Web
o fontname1 là phông chữ được chọn
o fontname2 được sử dụng khi trên máy người dùng không tôn tài fontname1
o Ví dụ: <font face = “Arial, Time new roman”, bold>
• Định dạng kích thước chữ: dùng để định kích thước cho toàn bộ văn bản
Cú pháp: <Basefont size = “n”>
n mang giá trị từ 1 đến 7 Giá trị mặc định là 3
• Định màu cho văn bản
Cú pháp: <Font color = “Giá trị”></Font>
Trang 29 Color: là màu dùng cho chữ Giá trị màu có thể gõ bằng chữ hoặc hệ số hexa (16)
Ví dụ: <Font color=“red”> Lớp lập trình Web </font>
<Font color=“#FF000”> Lớp lập trình Web</font>
• Định dạng chữ
Thẻ <B>nội dụng</B> hoặc <Strong>Nội dung</Strong>
Thẻ <I>nội dụng</i> hoặc <em>nội dụng</em>
• Phân đoạn văn bản
Cú pháp <P thuộc tính=“giá trị”>
Thuộc tính align: canh đoạn văn bản Align có thể nhận các giá trị sau
– Left: nội dụng trong đoạn được canh trái – Righ: nội dung trong đoạn được canh phải – Center: nội dung trong đoạn được canh giữa
• Thẻ phân cấp đề mục: Trong HTML cho phép sử dụng 6 cấp đề mục trong trang Web
Cú pháp: <Hn>Nội dung</Hn> với n mang giá trị từ 1 tới 6
Ví dụ:
z <H1> Giám đốc </H1>
z <H2> Phó giám đốc </H2>
z <H3> Nhân viên </H>
• Chèn hình ảnh vào trang Web
Cú pháp: <IMG SRC= “tên tập tin chứa hình ảnh>
Tên tệp tin chứa hình ảnh có cả đường dẫn thư mục Nếu tệp tin hình ảnh được đặt cùng thư mục với thư mục chứa trang Web thì không cần đường dẫn thư mực
Ví dụ <IMG SRC=“images/anh1.jpg”>
• Thêm đường viên xung quanh hình ảnh
Cú pháp: <IMG SRC=“tên file” Border=“n”>
Với n là độ dày của đường biên ảnh, tính bằng pixel
Ví dụ <IMG SRC=“images/anh1.jpg” border=“2”>
• Canh chỉnh hình ảnh
Cú pháp: <IMG align=“giá trị”>Nội dung
Giá Trị:
o left: hình ảnh nằm bên trái màn hình
o right: hình ảnh nằm bên phải màn hình
o center: hình ảnh nằm giữa màn hình
o Ví dụ <image src="IBM.jpg" align=“left">Xin chào
• Thêm chữ xung quanh hình ảnh
Cú pháp: <IMG SRC=“tên file” align=“giá trị”> Nội dung
Giá trị
o Top: ví trí văn bản nằm ở phái trên hình ảnh
o middle: vị trí văn bản nằm ở giữa hình ảnh
o bottom: vị trí văn bản nằm ở dưới hình ảnh
Trang 30<p>Both gif and jpg files can be used as HTML backgrounds.</p>
<p>If the image is smaller than the page, the image will repeat itself.</p>
</body>
</html>
• Đường kẻ ngang trang Web
Thẻ <HR>: dùng để kẽ đường ngang trên trang Web, giúp trang Web rõ ràng hơn
Cú pháp:
o <HR size=“n” width=“w” align=“giá trị”>
Size: độ dày/mỏng của đường kẻ tính bằng pixel
Width: chiều rộng của đường kẻ tính bằng pixel
Align: canh đường kẻ Có 3 giá trị left,right, center
• Định màu nền cho trang Web
Để đình mầu nền cho trang Web, bổ sung thuộc tính bgcolor vào trong thẻ BODY
Cú pháp <BODY bgcolor=“color”>
Color là màu cần định cho trang Web
• Định ảnh nền cho trang Web
Dùng hình ảnh làm nền cho toàn trang Web thày vì sử dụng màu nền
Cú pháp <BODY background=“tên tệp”>
Tên tệp là tên tệp tin hình ảnh càn làm nền cho trang Web
• Xuống dòng trong trang Web
Cú pháp <BR>
• Tạo danh sách theo thứ tự
Cú pháp
<OL Type = X START=n>
<LI> Nội dung mục 1
<LI> Nội dung mục 2
o N là giá trị bắt đầu của danh sách
• Tạo dấm tròn (bullet) cho danh sách
Cú pháp
<UL Type=“kiểu chấm tròn”>
<LI> Nội dung mục 1
<LI> Nội dung mục 2
…
<LI> Nội dung mục N
</UL>
Trong đó “kiểu chấm tròn” mang một trong 3 giá trị sau:
o disc: kiểu dấu chấm tròn đậm
o Circle: kiểu dấu chấm tròn rỗng
o Square: kiểu dấu chấm vuông đặc
• Tạo danh sách định nghĩa: là loại danh sách có dạng một từ hay một cụm từ kèm theo nội dung dài, rất thích hợp giải thích ý nghĩ của nội dung
Cú pháp: sử dụng các thẻ <DL>, <DT>, <DD>
o <DL>: để tạo danh sách định nghĩa
Trang 31o <DT> :đánh dấu thuật ngữ được định nghĩa trong danh sách
o <DD>: giải thích thuật ngữ ở trên
2.3.3 Tạo liện kết (link)
Liên kết là đặc trưng WWW, cho phép người dùng chuyển từ mục này sang mục khác trong cùng một trang hoặc chuyển sang một trang Web này sang một trang Web khác
a Liên kết trong cùng một trang Web: cho phép liên kết đến các mục bên trong một trang Web
• Các bước thực hiện
Tạo một điểm neo (bookmark)
o Cú pháp: <a name=“tên điểm neo cần tạo”>NDung</A>
Tạo liên kết đến điểm neo
o Cú pháp: <a href=“#tên điểm neo cần liên kết đến”</A>
o Dấu # báo cho trình duyệt biết liên kết này là nội bộ
Ví dụ:
` b.Tạo liên kết đến các trang Web khác
Cú pháp <A href=“URL”>Nội dung</A>
o Ví dụ
¾ <a herf=http://www.vimaru.edu.vn>DHHH</A>
o Thuộc tính
¾ Target=“giá trị”: mở liên kết ở vị trí nào?phụ thuộc giá trị
– _blank:nạp liên kết vào một cửa sổ trống mới – _parent: nạp liên kết vào cửa sổ cha gần nhất của trang Web hiện thời
– _self: nạp liên kết vào cùng cửa sổ với trang Web hiện hành – _top: nạp liên kết vào cửa sổ cao nhất
2.3.4 Một số kí tự đặc biệt trong HTML
HTML dùng các kí từ < và > để mở và đóng 1 thể, do đó không thể hiện các ký tự đặc biệt này Vì vậy cần có một nhóm ký tự thay thế
Trang 322.3.5 Các tag dùng thiết kế bảng
• Cú pháp:
<Table ></Table>: Bắt đầu một bảng mới với các thuộc tính đi kèm
Thuộc tính:
o Bgcolor: đình màu nền cho bảng
o Border: định đò dày, mảnh của đường viền
o Bordercolor: định màu cho đường viền
o Bordercolordark: định màu sậm cho phần hắt bóng của đường viền
o Cellpadding: định khoảng cách giữa nội dung và đường viền
o Cellspacing: định khoảng cách giữa các ô
o Frame: hiển thị đường viền ngoài
o Height: định chiều cao bảng
o Width: định chiều rộng bảng
o Rules: hiển thị đường viền trong
<TR>Nội dung</TR> bắt đầu một hàng mời trong bảng với các thuộc tính:
o Align/valigh: canh chỉnh nội dung hàng theo phương ngang/dọc
o Bgcolor: thay đổi màu nền của bảng
<TH></TH>,<TD></TD>: bắt đầu một đề mục mới cho bảng vớic ác thuộc tính sau
o Align/valigh: canh chỉnh nội dung hàng theo phương ngang/dọc
o Bgcolor: thay đổi màu nền của ô
o Colspan: mở rộng ô qua nhiều cột
o Rowspan: kéo dài ô xuống nhiều hàng
o Nowrap: giữ nội dung ô nằm trên một dòng
o Width, height: đình chiều rộng, cao cho ô
Tạo khung viền cho bảng
o <Table border=“n”>
Thay đổi màu khung
Trang 33o <Table bordercolor=“mầu”>
Thiết lập độ rộng
o <table width = “giá trị”>
Thiết lập tiêu đề cho bảng
o <caption>Nội dung</caption>
2.3.6 Các tag tạo Frame
Khung (Frame) là thành phần cơ bản của Web, một trang Web có thể được chia thành nhiều khung, mỗi khung sẽ chứa một trang Web riêng
a Tạo Frame có dạng hàng
• Cú pháp:
<Frameset rows=“a,*,b”>
<frame name=“tên frame” src=“tên tệp tin sẽ hiển thị”>
<frame name=“tên frame” src=“tên tệp tin sẽ hiển thị”>
</Frameset>
• Trong đó:
o a: chiều cao frame đầu tiên
o *:chiều cao của frame thứ 2 là khoảng trống còn lại
o b:chiều cao của frame thứ 3
b.Tạo Frame có dạng cột
• Cú pháp:
<Frameset cols=“a,*,b”>
<frame name=“tên frame” src=“tên tệp tin sẽ hiển thị”>
<frame name=“tên frame” src=“tên tệp tin sẽ hiển thị”>
</Frameset>
o Scorlling = “yes/no”: ẩn/hiện thanh cuộn
o Frameboder=“yes/no”: ẩn/hiện viền khung
o Border=“n”: chỉnh độ dày/mỏng của viền khung
o Noresize: không cho thay đổi kích thước của khung
2.3.7 Các tag dùng tạo Form
Form là thành phần giao tiếp cơ bản giữa người duyệt Web với người tạo Web Dữ liệu được nhập vào Form thông qua các hộp điều khiển
số kí tự nhập vào Textbox
• Tạo Textboxx với vùng văn bản chứa nhiều dòng
o Cú pháp: <textarea name = “name” rows = “n”, cols = “m” wrap><textarea>
Trang 34o Trong đó “name” là chuỗi kí tự nhận diện dữ liệu nhập vào, n là chiều cao của vùng văn bản tính bằng dòng (mặc định = 4), m là chiều rộng của vùng văn bản tính bằng kí tự (mặc định = 40)
• Tạo nút Radio button: Radio là nút chì được họn một trong số đó, không thể chọn lựa hai nút cùng lúc
o Cú pháp <input type = “radio name = “name” value = “data” checked>
• Tạo ô chọn (checkbox): khác với Radio, checkbox cho phép chọn nhiều nút trong một nhóm
o Cú pháp <input type = “checkbox” name = “set” value = “value” checked>
• Tạo nút Push button (nút nhấn)
o Cú pháp<input type = “button” value = “nhãn”>
o Để tạo nút nhấn khi người dùng nhấn vào, dữ liệu của các điều khiển khác đều được đặt giá trị mặc định lúc khởi tạo, có thể chỉ định thuộc tính type =”reset” trong tag <input> Tạo nút nhấn đề kết thục việc nhập dữ liệu của một Form, ta chỉ định thuộc tính type = “submit” trong thẻ <input>
• Tạo Dropdown Listbox: là danh sách chứa nhiều mục
o Cú pháp
Trang 35Chương III Cascading style sheets
2.1 Căn bản về CSS (Cascading style sheets)
CSS là một chuẩn để định dạng các trang Web CSS mở rộng ngôn ngữ HTML truyền thống với hơn 70 thuộc tính về kiểu dáng có thể áp dụng cho các thẻ HTML.Với CSS, các nhà lập trình Web có thêm nhiều lựa chọn về màu sắc, khoảng cách, vị trí, biên, lề, con trỏ
Thuộc tính 2: giá trị;
……
Thuộc tính n: giá trị;
} Selector thường là các thẻ HTML mà bạn muốn định nghĩa thêm Property là thuộc tính mà bạn muốn thay đổi; mỗi một thuộc tính cần phải có một giá trị Một thuộc tính và giá trị của
nó được phân cách nhau bởi dấu hai chấm (:) Hai cặp thuộc tính-giá trị được phân cách nhau bởi dấu chấm phảy (;) Toàn bộ các cặp thuộc tính-giá trị của một thẻ HTML được đặt trong cặp dấu ngoặc nhọn ({})
2.2.1 Phần tử chọn – Seclector
a Dùng các phần tử HTML làm phần tử chọn: là cách tuyệt vời để áp dụng CSS nếu muốn tất
cả các phần tử thuộc một kiểu nào đó xuất hiện với cùng một định dạng Cách làm này là cứng nhắc nhất trong 3 cách nhưng nó là cách tốt nhất để đảm bảo tính nhất quán của việc định dạng suốt tài liệu Một trong những cách dùng HTML làm phần từ chọn thường đuợc dùng là định dang các siêu liên kết trong tài liệu
Trang 36Các CLASS gắn với 1 thẻ cụ thể
Ví dụ: Trên trang web có 3 loại đoạn văn: Đoạn văn canh lề trái, đoạn văn canh lề giữa và đoạn văn canh lề phải Khi đó có thể định nghĩa 3 lớp riêng biệt cho 3 loại đoạn văn này như sau:
p.trai {text-align: left}
p.phai {text-align: right}
p.giua {text-align: center}
Tiếp theo, trong trang HTML sử dụng như sau:
<p class="trai">Đoạn văn này được canh lề trái.</p>
<p class="phai">Đoạn văn này được canh lề phải.</p>
<p class="giua">Đoạn văn này được canh lề giữa.</p>
Chú ý:
- CSS phân biệt chữ hoa và chữ thường giống như C++ do đó khi viết cần phải cẩn thận trong việc sử dụng chữ hoa, chữ thường
- Trong trang HTML, chỉ được phép khai báo 1 thẻ thuộc duy nhất một lớp Trái điều này mặc
dù trình duyệt không báo lỗi nhưng các lớp sẽ không hoạt động được
Ví dụ về sử dụng lớp sai:
<p class="trai" class="phai">Đây là đoạn định nghĩa sai</p>
Các ví dụ ở trên là ví dụ về việc tạo các lớp bị "gắn chặt" với một thẻ nào đó, tức là không sử dụng được lớp này trong thẻ khác Theo các khai báo ở trên, ví dụ dưới đây sẽ không hoạt động:
<td class="trai">Ví dụ này không hoạt động</td>
Các CLASS không gắn với một thẻ cụ thể (có thể gắn với hầu như tất cả các thẻ):
Trang 37Có thể tạo ra một lớp mà lớp đó có thể gắn vào hầu như bất cứ thẻ nào trên trang web bằng
cách bỏ tên thẻ ở đầu đi nhưng nhớ giữ lại dấu chấm (.)
Ví dụ:
Định nghĩa một lớp "giua" có thể gắn với bất cứ thẻ nào
.giua{text-align="center"}
và trong trang HTML ta sử dụng như sau:
<p class="giua">Đoạn văn này được canh lề giữa.</p>
<td class="giua">Câu này cũng được canh lề giữa.</p>
b Dùng ID làm phần tử chọn
Tương tự như các lớp, các định danh cũng cho phép chia các thẻ thành nhiều loại khác nhau
Tuy nhiên trên thực tế thì Định danh khác với lớp!!! Một lớp có thể áp dụng nhiều lần ở
nhiều vị trí trên trang web, tuy nhiên 1 định danh chỉ có thể áp dụng được duy nhất cho 1 thẻ
và tên của định danh phải là duy nhất trên 1 trang web Qui tắc cho Style dùng ID làm phần tử chọn bắt đầu bằng dấu thăng (#)
2 Đoạn mã dưới đây có thể có hiệu lực cho thẻ đầu tiên có ID là xyz:
*#xyz {color: green}
Khi sử dụng:
<p id="xyz">Đoạn văn bản</P>
3 Đoạn mã dưới đây chỉ có thể áp dụng cho thẻ <P> đầu tiên:
p#wer345 {color: green}
Khi sử dụng:
<p id="wer345">Đoạn văn bản</p>
Và đoạn dưới đây không có hiệu lực:
Trang 38<h1 id="wer345">Đoạn văn bản không được áp dụng</p>
c Các phần tử chọn theo ngữ cảnh
Nếu chúng ta muốn tìm kiếm ví dụ về mỗi quan hệ cha-con giữa một đoạn paragraph cùng với phần tử em bên trong paragraph, chúng ta xem các phần tử chọn con làm việc như thế nào Trong ví dụ này, phần tử em và nội dụng của nó thừa kế các chức năng luật từ cha nó – phần
Sau đó, có thể viết bất kì thứ gì trong khối miêu tả sẽ được áp dụng đối với các phần tử con
d Các phần tử chọn CLASS giả (Pseudo Class Selectors)
Được sử dụng đối với các kiểu liên kết, ngoài ra còn được sử dụng cho các mục đích khác như bổ sung hiệu ứng cho các thẻ Sức mạnh của loại phần tử này sẽ được phát huy đối với các liên kết đó là sự kết hợp của các phần tử với phần tử lớp để tạo ra các kiểu đa liên kết mà
e Các phần tử chọn phần tử giả lập (Pseudo Element Selectors)
Có bốn phần tử trợ giúp nhà lập trình dành được mục tiêu in ấn được mô tả bảng dưới đây:
Các phần tử chọn giả lập trong CSS2
Trang 39Để sinh ra nội dung sử dụng phần lựa lựa chọn giả lập trước và sau, chúng ta định nghĩa phần
tử đến luật sẽ được áp dụng, phần tử giả lập trứoc, sau, thuộc tính nội dung, và nội dung trong dấu nháy kép
h1:after {
content: "header note"
}
Kết quả: Câu “hearder note” xuất hiện sau h1
f Nhóm các phần tử lựa chọn - Selector Groups
Nhóm phần tử lựa chọn cho phép người dùng nhóm các phần tử lựa chọn với nhau khi muốn gán các phần tử lựa chọn này những thuộc tính giống nhau Ví dụ dưới đây sẽ nhóm tất cả các thẻ Header lại, định nghĩa chúng sẽ có màu xanh, và sử dụng font arial hoặc sans-serif:
h1, h2, h3 {font-family: Arial, sans-serif; color: green }
:focus Áp dụng kiểu khi một phần tử có focus bàn phím (khi con trỏ được đặt trong
hộp text box của form)
Các phần tử lựa chọn con
Trang 40Các phần tử ngữ cảnh cho phép tạo mẫu phần tử con tách biệt với phần tử cha Phần tử này áp dụng khi cần lồng ghép các phần tử Ví dụ, chúng ta có nhiều phần tử em trong phần tử division, div và paragraph trong division này có thể có các phần tử strong
Ví dụ: nếu viết phần lựa ngữ cảnh sau:
ở bên phải dấu > và phần tử con trong vấn đề:
<p>I find books by <a http://www.marthagrimes.com/">Martha Grimes</a>
to be the quintessential escapist experience A good mystery and a
<a href="http://www.adagioteas.com/">cup of tea</a> on a rainy day is true relaxation.</p>
Phần tử lựa chọn thuộc tính
Kiểu phần tử lựa chọn thuốc cho phép lựa chọn các phần tự dựa vò thuộc tính mà các phần tử
có Ví dụ, nếu chúng ta có một liên kết trong URL, có thể tạo bởi phần tử này thay vì phần tử anchor của chính no Mội thực thể của URL được định dạng theo qui tắc kết hợp với phần tử lựa chọn thuộc tính