2007年12月10日 星期一

Homework 11-26

1. Problem 1 & Problem 3 of Textbook on Page 55.
a.試解釋Web技術演進是要解決什麼樣的問題?

第一時期:靜態網頁且無自動資料庫更新
第二時期:由於CGI技術的使用,主要是利用程序(Process)來存取資料,解決了在第一時期要更 新資料的繁瑣。
第三時期:CGI技術更加成熟,利用執行緒(Thread)取代程序,解決了在第二時期每服務一位使 用者就要開一個程序的效率問題, 使得網頁處理速度更快。

b.程序(Process)和執行緒(Thread)對網站性能有什麼不同的影響?

Process的使用是指每當要提供新的一位使用者服務時,就得開一個新的程序來服務。當有大 量使用者需要服務時,由於太多的process執行,就會導致網站速度明顯下降,甚至有可能導致 系統當機的問題。
執行緒的技術使用就比較聰明,在server內已經提供Daemon的服務,使用者需要哪種服務, 只須找出相對應的執行緒去服務它即可,效率較佳。

2. What does a CGI output contain in the HTTP header? Hint: Such as Content-type

當CGI資料輸出,會透過Stdout方式送出給伺服程式,即HTTPD,再傳送回給HTTP。而CGI  輸出前,會先送出MIME資訊(資料檔),讓www伺服主機能分辨資料型態
ex:使用google 搜尋mp3
http://www.google.com.tw/search?q=mp3&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_zh-TWTW247TW249

search是處理事件
?之後 就是要傳遞給伺服器作處理的訊息
zh-TW 表示的是繁體中文
q 表示送出查詢的資料

3. If you want to upload an mp3 file, should you use the GET or POST method? Why?
POST,因為get的傳輸方式是將資料直接加在 URI 之後,會有傳輸資料大小的限制(1K),而 POST容許傳送大量資料,一首mp3通常至少有5MB以上。