Thứ Ba, 11 tháng 1, 2011

Một số thuật ngữ về mạng

AAL: (ATM Adaptation Layer). Một phần của các giao thức chuẩn ATM.
ABR:. Available Bit Rate, một tham số cho dịch vụ trong ATM mà không bảo đảm cho tốc độ.
. Area Border Router, một quy ước trong OSPF cho một bộ định tuyến để thông tin liên lạc với vùng khác.
ACK: Viết tắt của từ Acknowledgement
ACK implosion: Để chỉ môt vấn đề mà có thể xảy ra với giao thức mutilcast đáng tin cậy, trong đó có nhiều ACK đi ngược trở về nguồn.
AH: (Authentication Header).Một phần đầu được sử dụng bởi IPsec để đảm bảo việc xác minh nguồn gốc của datagram.
ANSNET:.Một mạng diện rộng mà đã hình thành nên backbone của Internet cho đến năm 1995.
ARP: (Address Resolution Protocol). Giao thức TCP/IP được sử dụng để liên kết động một địa chỉ IP cấp cao vào một địa chỉ phần cứng cấp thấp.
AS: (Autonomous System). Một tập hợp cac bộ định tuyến và các mạng thuộc về một đơn vị quản trị và hợp tác chặt chẽ với nhau để nhân bản thông tin về khả năng đi đến các mạng (và thông tin định tuyến) giữa chúng với nhau, sử dụng giao thức cổng nội.
ASN-1: (Abstract Syntax Notation - 1). Giao thức chuẩn ISO được sử dụng bởi SNMP để thể hiện các thông điệp.
ATM: (Asynchronous Transfer Mode). Một kỹ thuật mạng định hướng kết nối mà sử dụng những cell nhỏ có kích thước cố định ở mức thấp nhất. ATM có ưu điểm về khả năng hỗ trợ dữ liệu thoại và video.
ATM Adaptation Layer (ALL):. Một trong số các giao thức được định nghĩa cho ATM để xác định cách một chương trình ứng dụng gửi và nhận thôgn tin qua mạng ATM.
ATMARP: Giao thức mà một máy sử dụng cho việc giải địa chỉ khi gửi IP qua mạng ATM.
AUI: Bộ kết nối đươc sử dung cho Ethernet dây dày.
BGP: ( Border Gateway Protocol)
Một kỹ thuật cổng ngoại chủ yếu, được sử dụng trong Internet.
BootTP: (BootStrap Protocol), một giao thức máy tính sử dụng để lấy thông tin khởi động từ server, bao gồm địa chỉ IP của nó.
CBT: (Core Based Tress)
Giao thức định tuyến multicast do nhu cầu điều khiển mà xây dựng nên cây dùng chung.
CGI: (Common Gateway Interface)
Một kỹ thuật mà server sử dụng để tạo trang Web tự động khi nhận được yêu cầu.
CIDR: (Classless Inter-Domain Routing)
Là chuẩn xác định các chi tiết của cả hai việc định địa chỉ không phân lớp cũng như mô hình định tuyến tương ứng.
COPS: (Common Open Policy Service)
Giao thức được sử dụng với RSVP để kiểm chứng xem lời yêu cầu có thoả mãn các chính sách ràng buộc.
DHCP: (Dynamic Host Configuration Protocol)
Một giao thức mà máy sử dụng để lấy dược tất cả thông tin cấu hình cần thiết, bao gồm cả địa chỉ IP.
DNS: (Domain Name System)
Hệ cơ sở dữ liệu phân bố trực tuyến được sử dụng để ánh xạ các tên máy thông dụng đối với con người thành các địa chỉ IP.
DVMRP: (Distance Vector multicast Routing Protocol)
Một giao thức được sử dụng để nhân bản các tuyến đường multicast.
EGP: (Exterior Gateway Protocol)
Một thuật ngữ áp dụng cho giao thức nào được sử dụng bởi bộ định tuyến trong một hệ tự quản để thông báo khả năng đi đến mạng cho ho bộ định tuyến trong hệ tự quản khác.
FIN: Một segment TCP đặc biệt được dùng để đóng một kết nối.
FTP: (File Transfer Protocol)
Chuẩn TCP/IP, giao thức cấp cao cho việc truyền tập tin từ máy này đến máy khác.

Căn bản về SSI trên Apache

Using Server Side Includes
Trong khi các file HTML chuẩn dùng cho lưu giữ các trang rất tốt, thì khả năng tạo ra một số nội dung động của nó cũng rất đáng hoan nghênh. Lấy ví dụ, đưa thêm vào một footer hay một header vào tất cả các file, hoặc là đưa vào thông tin về tài liệu ví như thời gian sửa đổi gần nhất một cách tự động. Điều này có thể thực hiện bằng CGI được, nhưng nó lại đòi hỏi những kĩ năng lập trình hoặc viết mã kịch bản mà vấn đề đó thì không hề đơn giản. Đối với những trang tài liệu động đơn giản thì chúng ta có một giải pháp thay thế khác: đó là các nội dung đưa vào từ máy chủ (SSI). Bài này là một trong loạt bài về SSI do chúng tôi biên soạn, với các mức độ khác nhau về cú pháp. Nếu các bạn muốn theo dõi về chủ đề này xin đến với Diễn dàn Công nghệ thông tin VN http://cnttvn.cjb.net/

SSI cho phép bạn gắn kèm một số câu lệnh đặc biệt vào trong chính trang HTML. Khi mà server đọc một tài liệu có chứa SSI, nó sẽ tìm kiếm các câu lệnh này và thực hiện các hành động cần thiết. Ví dụ, có một câu lệnh SSI thực hiện chức năng nhập vào thời gian sửa đổi gần nhất của tài liệu. Khi server đọc được một file có dòng lệnh này trong đó, nó sẽ thay thế dòng lệnh bằng thời gian thích hợp.
Apache có chứa một tập hợp các câu lệnh SSI dựa theo một số câu lệnh có trong máy chủ NCSA cộng với nhiều câu lệnh mở rộng khác. Điều này được thực hiện với the includes module (mod_includes). (Bạn có thể hiểu là một chương trình có chức năng tổng hợp)

Telling Apache to Use SSI
Theo mặc định thì máy chủ không hơi đâu mà đi tìm trong các file HTML xem có các câu lệnh SSI hay không. Điều này làm giảm tốc độ mọi lần truy cập đến một file HTML. Để sử dụng SSI bạn cần báo cho Apache biết là các tài liệu nào thì có chứa các câu lệnh SSI.

Một cách để làm được điều này là dùng một file có phần mở rộng đặc biệt. Thường thì người ta dùng .shtml, và nó có thể được lên cấu hình (configured) cùng với cái directive tức cái lời hướng dẫn này:

AddHandler server-parsed .shtml
AddType text/html shtml

Chỉ thị AddHandler bảo cho Apache biết cách xử lý mọi file .shtml như là một loại mà có chứa các câu lệnh SSI. Chỉ thị AddType thì thực hiện cái điều là làm cho các nội dung được xử lý ấy được đánh dấu như là HTML để trình duyệt hiển thị nó một cách chính xác.

Một phương pháp thay thế khác để thông báo cho server biết file nào là có chứa các câu lênh SSI là sử dụng cái gọi là XBitHack. Cái này liên quan đến việc thiết lập the execute bit mà tôi tạm dịch là bit thực thi trên các file HTML. Bất cứ một file này có loại nội dung (content type) là text/html (ví dụ có phần mở rộng là .html) và có chứa một tập hợp bit thực thi thì sẽ được kiểm tra xem có chứa các câu lệnh SSI hay không. Để làm điều này thì cần phải đưa vào chỉ thị XBitHack .

Trong cả hai phương pháp thì server cũng cần phải được lên cấu hình để cho phép dùng các câu lệnh SSI. Điieù này đượct hực hiện với chỉ thị Options Includes , cái này cần được đặt trong hoặc là tệp tin toàn cục mang tên access.conf (the global access.conf) hoặc là tệp tin địa phương .htaccess (local .htaccess) (mặc dầu là cái thứ hai bắt buộc phải được enabled bằng chỉ thị AllowOverride Options). Bởi vì một số câu lệnh SSI cho phép dùng các chương trình thực thi mà có thể mang tới rủi ro về vấn đề security, nên có một giải pháp thay thế tùy chọn, IncludesNOExec cho phép các câu lệnh SSI đều thực hiện được ngoại trừ những câu lệnh nào thực thi một chương trình.

SSI Commands
Tất cả các câu lệnh SSI được lưu giữ trong file HTML bằng các kí hiệu ghi chú của HTML. Một câu lệnh SSI bình thường trông giống như thế này:

Trong trường hợp này câu lệnh là flastmod, nó có nghĩa là đưa ra thông tin là thời gian sửa đổi gần nhất của file đó. Các đối số (argument) xác định cụ thể file đó là "this.html" (đây là tên của file có chứa câu lệnh này). Toàn bộ phần viết ra câu lệnh, mà được chứa trong kí hiệu đánh dấu phần chú thích ãe được thay thế bằng kết quả của câu lệnh này.

Nói chung thì tất cả các câu lệnh đều có cái format tức cái công thức như sau:

trong đó arg1, arg2, vân vân là các cái tên của các đối số và value1, value2 vân vân là các giá trị của các đối số đó. Trong ví dụ về flastmod, đối số là 'file' và giá trị của nó là 'this.html'. Thường thì các câu lệnh có thể nhận các tên của đối số khác nhau. Ví dụ, flastmod có thể được trao cho một URL với đối số là virtual, để lấy được thời gian của lần sửa đổi gần nhất từ server. Ví dụ:

để nhận được thời gian sửa đổi gần nhất của trang chủ trên server đó (điều này là hữu ích nếu như trang được truy cập đó có thể có một tên khác, ví dụ là như thế).

Bên cạnh flastmod, có các câu lệnh SSI làm chức năng là lấy kích thước (size) của một file hay một URL, các nội dung của một biến (được máy chủ truyền vào trong), các nội dung của một file khác hay URL khác, hoặc kết quả của việc chạy một local file tức là một tệp tin trong nội bộ site. Những câu lệnh này được nêu ra trong NCSA tutorial về vấn đề server side includes.

Khi các câu lệnh SSI được thực thi, một số các biến môi trường ('environment variables') được thiết lập. Điều này hàm chứa các biến CGI (REMOTE_HOST etc), và thêm một số cái nữa, như là DOCUMENT_NAME và LAST_MODIFIED. Các biến này có thể là thông tin đầu ra (output) với câu lệnh echo (do vậy cách tốt hơn để lấy ra thời gian sửa đổi gần nhất của file hiện thời sẽ là ).

Extended SSI
Apache mở rộng ngôn ngữ SSI chuẩn (NCSA-compatible) một cách đáng kể. Một số mở rộng gồm có:

Các biến trong các câu lệnh: Apache cho phép các biến được dùng trong bất cứ một câu lệnh SSI nào. Ví dụ, thời gian sửa đổi gần nhất của tài liệu hiện thời có thể lấy ra với
Thiết lập các biến: câu lệnh set có thể được dùng bên trong SSI để thiết lập các biến.
Các điều kiện: các câu lệnh SSI if, else, elif và endif có thể được dung để đưa các phần của file vào dựa trên các kiểm tra mang tính điều kiện. Ví dụ, biến $HTTP_USER_AGENT có thể được kiểm tra để xem loại của trình duyệt và thông tin đầu ra bằng các mã HTML khác nhau tùy thuộc vào các khả năng của trình duyệt ấy.

Các ví dụ
Đây là một số ví dụ dùng SSI:
Displaying document information
Mã sau đây đặt thời gian sửa đổi gần nhất lên trang đó:
Last modified:

Adding a footer to many documents
Hãy đặt đoạn mã sau đây xuống tận cùng của mỗi trang tài liệu:

Hide links from external users
Dùng câu lệnh if và biến REMOTE_ADDR CGI để xem xét xem liệu người sử dụng đó có ở trong vùng nội bộ hay không (the local domain):
internal Documents
(Trong đó 1.2.3 là phần đầu (prefix) của địa chỉ IP của the local domain).