Thứ Sáu, 3 tháng 10, 2008

Network Protocol

Please Do Not Tell Secret Passwords Anytime

I. Mô hình mẫu OSI

1. Application layer (Người quản lí)

Là giao diện chính để người sử dụng tương tác với các ứng dụng. Các dữ liệu ở dạng ứng dụng (không theo chuẩn nào cả, hoàn toàn tùy biến).

2. Presentation layer (Phụ tá quản lí)

Mã hóa, nén dữ liệu từ ứng dụng theo các tiêu chuẩn khác nhau.

3. Session layer (thư kí)

Kiểm soát các phiên giao dịch giữa các máy tính. Quán lí các kết nối giữa các ứng dụng.

4. Transport layer (tài xế)

Đảm bảo cho dữ liệu được truyền một cách đáng tin cậy.
Phân biệt được ứng dụng quản lí gói tin (gói tin được truyền tới ứng dụng nào).
TCP/UDP

5. Network layer (nhân viên bưu cục, phân loại)

Đảm bảo cho chuỗi thông tin có độ dài đa dạng, từ thiết bị nguồn đến thiết bị đích thông qua một hoặc nhiều mạng khác nhau, trong khi vẫn giữ chất lượng dịch vụ.
_
Thiết bị định tuyến (router)
_ IP Protocol

6. Data link layer (nhân viên bưu cục, đóng kiện)

Cung cấp các phương tiện với chức năng liên kết dữ liệu và quy trình truyền dữ liệu giữa các thực thể mạng. Và sửa lỗi xảy ra với quy trình đó.
+ Địa chỉ MAC (địa chỉ vật lí của một thực thể - unique từ khi sản xuất, gắn với thiết bị vật lí).
+ Là nơi mà các thiết bị chuyển mạch, cầu nối hoạt động.
+ Đảm bảo gói tin được chuyển tới đúng địa chỉ cần tới.

7. Physical layer (xe chở bưu kiện)

Tầng vật lí bao gồm các đặc tả vật lí và điện cho các thiết bị, có các chức năng sau:
+ Thiết lập/ ngắt mạch với kênh truyền thông.
+ Phân chia tài nguyên, điều khiển tranh chấp.
+ Giao tiếp giữa tín hiệu số và kênh truyền thông.

II. Các giao thức mạng


IE từ chối Session Cookie

Có một số trường hợp (đã xảy ra khi sử dụng multiple HttpObject). IE không chấp nhận session dạng cookie từ phía server (test trên localhost ok nhưng khi triển khai lên server thì lại không được thực hiện). IE không chấp nhận lưu session cookie, và tất nhiên là session id bên phía server liên tục thay đổi.

Rõ ràng IE đã không chấp nhận Session Cookie trong một vài trường hợp.

Giải pháp:

1. Đặt session id trên url.

2. Đồng bộ thời gian giữa client và server. Bởi vì sự chênh lệch có thể gây ra timeout và session không được tạo ra. Hạn chế này chỉ xảy ra với IE.

Chủ Nhật, 31 tháng 8, 2008

Xử lí UTF8 trong PHP

Tags: PHP, UTF8, UTF-8, xử lí, sắp xếp, chuyển đồi, sort, touppercase, tolowercase

http://www.phpwact.org/php/i18n/utf-8#str_replace

Tìm trên mạng được trang này, lưu lại tại đây, tìm hiểu sau.

Thứ Bảy, 30 tháng 8, 2008

Lifetype MVC blog

Tìm hiểu kiến trúc MVC của Lyfetype.

http://lifetype.net

Thứ Năm, 28 tháng 8, 2008

PHP string validator

Để hiểu được các nội dung bạn có thể tham khảo thêm các kiến thức
http://en.wikipedia.org/wiki/Regular_expression
http://www.regular-expressions.info/

Trong lập trình ứng dụng, việc kiểm tra tính đúng (hợp lí) của các dữ liệu là rất quan trọng. Vì vậy việc xây dựng thư viện để kiểm tra luôn là điều cần thiết.

1. Kiểm tra địa chỉ email

function checkEmail($email)
{
//regular expression của địa chỉ email
$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";
return
eregi($pattern, $email);
}

2. Kiểm tra chuỗi url

function checkUrl($Url)
{
//protocol://
$Pattern = '^(https?|ftps?|file|news|gopher|mms)\:\/\/';
//user:password (optional)
$Pattern .= '([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?';
//ip or webaddress (chấp nhận cả address localhost, tuy nhiên trong các ứng dụng cần phải chú ý loại bỏ tính năng kô hữu dụng này)
$Pattern .= '(([0-9]{1,3}\\.){3}[0-9]{1,3}|[a-z0-9+\$_-]+(\.[a-z0-9+\$_-]+))
';
//port (optional)
$Pattern .= '(\:[0-9]{2,5})?';
//script path
$Pattern .= '(\/([a-z0-9+\$_-]\.?)+)*\/?';
//get query string
$Pattern .= '(\?[a-z+&\$_.-][a-z0-9;:@/&%=+\$_.-]*)?';
//anchor
$Pattern .= '(#[a-z_.-][a-z0-9+\$_.-]*)?$';
return eregi($Pattern, $Url);
}





Thứ Tư, 27 tháng 8, 2008

PHPers, hãy tham gia group

Những ai yêu thích PHP, hãy tham gia http://groups.google.com/group/phpvietnam?hl=vi để học hỏi kinh nghiệm của những PHPer thực thụ !

PHP là gì?: là một ngôn ngữ kịch bản Open Source (nguồn mờ) được sử dụng rộng rãi, đặc biệt phù hợp với việc phát triển Web (nghèo nhất trong nhóm làm phần mềm ).

Điều quan trọng nhất là, PHP rất đơn giản để sử dụng (kể cả với người hoàn toàn lạ lẫm với PHP), nhưng ở mặt khác, trang bị rất nhiều các tính năng nâng cao dành cho các lập trình viên chuyên nghiệp.

PHP có thể làm gì?:
+ Viết kịch bản phía Server.
+ Viết kịch bản lệnh hệ thống.
+ Viết ứng dụng desktop (PHP-GTK nhưng không tốt lắm, PHP chỉ tốt cho việc phát triển Web, Server script thôi).

PHP, có thể cài đặt trên hầu hết các hệ điều hành (100% các hệ điều hành tôi biết đều có gói cài đặt PHP).

PHP, hỗ trợ kết nối, xử lí với rất nhiều hệ quản trị cơ sở dữ liệu. Cỡ bự (Oracle, MSSQLServer), cỡ trung bình, cỡ nhỡ, cỡ nhỏ (SQLite), cả chuẩn ODBC. Tuy nhiên tiêu biểu nhất vẫn là hệ quản trị MySQL.

PHP, trong ứng dụng thương mại điện tử, hỗ trợ các chương trình thanh toán trực tuyến bằng các gói Cybercash Payment, CyberMUT, MCVE.

Hãy PHP ngay từ bây giờ :U!