Cách Thiết Kế Web Động

Last-Modified, web tĩnh web động và cách khống chế với PHP

Tôi xin chia sẻ với các bạn một vài kỹ thuật nhỏ nhưng không kém phần quan trọng trong thế giới thiết kế website.  Bài này thiên về lập trình php nhiều hơn.

Last-Modified hay nói cách khác, những status code cần quan tâm sau:

304 Not Modified

– 200 OK

Tôi sẽ không đề cập đến sự ảnh hưởng của Last-modified với SEO. Tôi chỉ giải thích thêm về cơ chế của Web tĩnh và Web động….

I/ WEB TĨNH ( HTML DOCUMENT THUẦN TÚY)

Với Last-Modified của Web tĩnh thì đã quá rõ, đơn giản như trong Window, khi bạn Propertices một file lên bạn sẽ thấy dòng Modifiled

Vì theo cơ chế của Client ( Web Browser ) và Server ( Web services ) nó sẽ như sau:
Giải thích:
Hay nói một cách khác, trường hợp web tĩnh chỉ đơn thuần là 1 file tài liệu được viết theo cấu trúc HTML và cái mà bạn thấy chỉ đơn giản là do trình duyệt hiển thị ra cho bạn đọc. Cũng như bạn có thể đọc file .doc, .pdf ngay trực tiếp tại trình duyệt mà không cần phải tự download về Client và mở ra bằng một chương trình khác.
Và hiểu đơn giản hơn là khi bạn truy cập vào một file HTML được hiểu theo nghĩa web tĩnh tức là bạn đang DOWNLOAD NÓ VỀ VÀ MỞ RA.
Điều này được chứng minh bằng cách bạn double-click vào một file HTML thì nó vẫn hiển thị và khi nhìn vào Address bar thì bạn sẽ thấy tương tự như là E:\AppServ\www\last-modified\index.html. Đó là đường dẫn trực tiếp nội bộ tại Client và điều này hoàn toàn không thể thực hiện tương tự với các file Server Script ví dụ như PHP, mà cần phải có Web services hỗ trợ render.
*** Và đó chính là lý do Last-modified được hiển thị, nó chính là thời gian của lần chỉnh sửa cuối cùng file HTML.

II/ WEB ĐỘNG ( SỰ HOẠT ĐỘNG WEB SERVICES )

Giải thích:
Trong trường hợp này, tại Server chúng ta có thêm 1 thằng PHP nữa. Và cơ chế nó như sau:
– Các Client gởi yêu cầu lên muốn xem những gì hiển thị trong cái [B]URL[/B] này
– Server sẽ bảo: các anh ngồi đợi pé chút xíu nha.
– Server rung chuông yêu cầu PHP: hey man, mấy anh chị có yêu cầu xem cái URL này này, mi hiển thị ra nhé.
– PHP bắt đầu dựa theo từng URL truy cập mà tạo ra các [B]tài liệu HTML[/B] theo từng yêu cầu
– Server mang cái [B]đống tài liệu HTML[/B] đó ra và phân phát lại cho các Client tải về … xem.
Nhận xét:
– PHP không phải là một tài liệu HTML, mà nó chính là thằng tạo ra tài liệu HTML, cho nên nếu bạn gọi là “trang index.php” tức là bạn đang phát ngôn sai vì PHP là code lập trình, ra lệnh cho PHP Services hoạt động, hay nói cách khác trong trường hợp trên, code PHP mà bạn viết chính là thằng PHP xanh lè trong hình mà tôi vẽ.
– Cho nên cái tài liệu mà Client download về để hiển thị cho bạn thấy được là luôn luôn được khởi tạo mỗi khi có truy vấn.

Kết luận:

Không chỉ với Joomla, WordPress, Drupal hay các mã nguồn mở gì gì đó mới có thể tạo ra Status 200 OK ( luôn luôn mới ) cho tài liệu HTML mà TẤT CẢ WEB ĐỘNG BÌNH THƯỜNG DÙ LÀ MỘT DÒNG CODE cũng mang Status code 200 OK.
<?php
$str = ‘<h1>Day la file PHP</h1>’;
?>
<html>
<head>
<title>Day la file PHP</title>
</head>
<body>
<?=$str?>
</body>

III/ LÀM SAO ĐỂ ĐƯỢC STATUS CODE 304 – NOT MODIFY

Very easy, thêm vào 1 dòng thui là như ý định mệnh
<?php
header(‘HTTP/1.1 304 Not Modified’); // Đây là dòng cần thêm
$str = ‘<h1>Day la file PHP</h1>’;
?>
<html>
<head>
<title>Day la file html</title>
</head>
<body>
<?=$str?>
</body>
Khi bạn thêm Header, sẽ nảy sinh ra 2 trường hợp:
1/ Client chưa lưu cache:
Nó sẽ hiện ra trang trắng hoặc báo lỗi gì đó tùy trình duyệt. Vì đơn giản, bạn đã ép nó phải hiển thị ra Status code là 304 trong khi nó làm quái gì đã cache trang HTML ấy đâu, nó chưa chửi là may rồi, vu khống à.
2/ Client đã có cache:
Nó sẽ hiển thị ra trang cũ dù bạn đã thay đổi chuỗi $str = ‘<h1>Đây là file PHP đã sửa</h1>’, hoặc báo lỗi “Error 6 (net::ERR_FILE_NOT_FOUND): The file or directory could not be found.” tùy theo trình duyệt.

October 28, 2011 - Posted by | Cách thiết kế web động | , , ,

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: