517322-Lecture: Dynamic Web Pages

19/12/2012 2:31 PM Study 932 views

Lecture 5 : Dynamic Web Pages

ความแตกต่างระหว่าง Static Web Pages กับ Dynamic Web Pages

  • Static Web Pages
        เป็นเว็บไซต์ที่แสดงข้อมูลทั่วไป ไม่มีการติดต่อกับฐานข้อมูล ไม่มีการจัดเก็บข้อมูล เป็นการนำเสนอข้อมูลแบบทางเดียว ซึ่งจะพัฒนาโดยภาษา HTML หรือ DHTML  เมื่อมีผู้ใช้งานเข้าเว็บไซต์ต่างเวลา ต่างหน้าที่ก็จะมีการแสดงรูปแบบเหมือนเดิม ทั้งเนื้อหาหรือ Layout ของเว็บไซต์ ทำให้ไปเป็นที่สนใจของผู้ใช้งาน
  • Dynamic Web Pages
      เว็บไซต์ที่มีตอบสนองกับผู้ใช้งาน มีการติดต่อและเก็บข้อมูลลงฐานข้อมูล มีการปรับปรุงเนื้อหาที่แสดงตลอดเวลา เช่น ข่าว การใช้งานก็แตกต่างกันไปตามเวลาหรือตามลักษณะผู้ใช้งาน เมื่อเข้าเว็บไซต์ต่างเวลาต่างผู้ใช้งานอาจจะมีการแสดงผลไม่เหมือนกัน มีการพัฒนาขึ้นด้วย Web Programming (PHP, ASP, ASP.NET อื่นๆ) ตัวอย่างเช่น ร้านค้าออนไลน์ (E-Commerce) หรือเว็บไซต์ของหน่วยงานพยากรณ์อากาศ 

ประเภทของ Dynamic Web Site

  • Server-Side Scripting
         หน้าเว็บแบบ  Dynamic ที่มีคำสั่งทำงานบนเครื่อง server เมื่อผู้ใช้เข้าไปยังเว็บไซต์นี้ server จะทำการอ่านไฟล์ดังกล่าวก่อน แล้วทำการแปล code ที่ได้เขียนไว้ในหน้าเว็บเพื่อให้ได้ผลลัพธ์ออกมา จากนั้นส่งผลลัพธ์เป็นไฟล์ HTML ไปยังเครื่องผู้ใช้ โดย Web Pages  ถูกเขียนขึ้นโดยภาษา PHP, Perl, ASP, JSP อื่นๆ
  • Client-Side Scripting
         หน้าเว็บแบบ Dynamic ที่มีคำสั่งทำงานบนเครื่อง Client เมื่อผู้ใช้เข้าไปยังเว็บเพจนั้นๆ Server จะส่งเนื้อหาทั้งหมดพร้อมทั้ง Code ไปยังเครื่อง Client ที่เรียกดูเว็บดังกล่าวแล้ว Code และคำสั่งทั้งหมดจะถูกประมวลผลที่เครื่อง Client
  • Combining Client and Server side
         เป็นการทำงานร่วมกันระหว่าง Server-Side Scripting และ Client-Side Scripting โดยโค๊ดบางส่วนถูกแปลที่เครื่อง Server บางส่วนถูกแปลที่เครื่อง Client  โดยใช้เทคนิค Ajax ในการพัฒนา Dynamic Web Site ที่มีการเปลี่ยนแปลงข้อมูลทางฝั่ง Server โดยที่ฝั่ง Client ไม่ต้องโหลดหน้าเว็บใหม่

Web Applications
     เป็นโปรแกรมประยุกต์ที่เข้าถึงด้วยโปรแกรมค้นดูเว็บผ่านเครือข่ายคอมพิวเตอร์อย่างอินเตอร์เน็ต เว็บแอพพลิเคชั่นเป็นที่นิยมเนื่องจากความสามารถในการอัพเดท และดูแล โดยไม่ต้องแจกจ่ายและติดตั้งซอฟต์แวร์บนเครื่องผู้ใช้ ตัวอย่างเว็บแอพพลิเคชั่นได้แก่ การขายสินค้า  การพาณิชย์อิเล็กทรอนิกส์ การประมูลออนไลน์ กระดานสนทนา บล็อก เป็นต้น

CGI (Common Gateway Interface)
     CGI คือโปรโตคอลที่ใช้ในการติดต่อระหว่าง Browser กับ Server ซึ่ง CGI จะเป็นตัวกลางค่อยประสานงานระหว่าง Server และโปรแกรม Gateway ที่เรียกว่า CGI Script ภายใน server CGI จะเป็นตัวกำหนดว่าข้อมูลจะส่งไปยัง โปรแกรม gateway ยังไง และ ข้อมูลจะถูกส่งกลับมาโดยโปรแกรม gateway อย่างไร
การใช้ CGI เป็นการทำให้เอกสาร HTML ที่ผู้ใช้ร้องขอเข้ามามีความยืดหยุ่นเรียกว่าเป็นแบบ dynamic วิธีการทำให้เอกสาร HTML มีความยืดหยุ่น คือ แทนที่จะเป็นข้อมูลแยกเป็นไฟล์ HTML หลาย ๆ ไฟล์ เราก็อาจจะเก็บข้อมูลทั้งหมดไว้ในไฟล์เดียว เมื่อผู้ใช้ต้องการข้อมูลผู้ใช้ก็เพียงแต่กำหนดเงื่อนไขให้แก่ CGI หลังจากนั้น CGI จะไปทำการนำข้อมูล ที่ได้ส่งกลับไปให้ Client ที่อยู่ในรูปเอกสารแบบ HTML ข้อมูลที่จะมีความแตกต่างกันออกไป แล้วแต่เงื่อนไขที่เรากำหนด ในกรณีนี้ CGI จะทำหน้าที่เป็น ประตู หรือ Gateway ระหว่างเซิร์ฟเวอร์กับ ฐานข้อมูลที่เรามีอยู่
* CGI ไม่ใช่ภาษาโปรแกรม และไม่ใช่โปรแกรม
* โปรแกรม CGI ทำงานในรูป Script มีหน้าทีนำเอา Web Document ที่ส่งมาจาก Web Client มาประมวลผลแล้วแปลงค่าต่างๆ เพื่อกำหนดเป็นตัวแปลมาตรฐานที่จะส่งไปให้กับ Web Server เพื่อติดต่อกับฐานข้อมูลต่อไป

CGI Diagram

 CGI Enviroment Variables 

  • ตัวแปร environment ต่อไปนี้จะกำหนดสำหรับการร้องขอทุกๆครั้ง
    • SERVER_SOFTWARE
      ชื่อและรุ่นของโปรแกรม web server ที่ server ใช้(และใช้เรียกใช้งานโปรแกรม gateway) รูปแบบ: name/version
    • SERVER_NAME
      ชื่อเครื่องของเครื่อง server (hostname), domain name หรือ IP address ที่จะใช้ในการอ้างอิงถึง URL ตัวเอง
    • GATEWAY_INTERFACE
      รุ่นชื่อ CGI ที่ server ใช้ รูปแบบ : CGI/revision
  • ตัวแปร environment จะถูกกำหนดขึ้นเฉพาะสำหรับแต่ละโปรแกรม gateway ที่เรียกใช้งาน
    • SERVER_PROTOCOL
      ชื่อและรุ่นของโปรโตคอลที่การร้องขอใช้งาน รูปแบบ : protocol/revision
    • SERVER_PORT
      หมายเลข port ที่การร้องขอถูกส่งเข้ามา
    • REQUEST_METHOD
      วิธีการ(method)ที่การร้องขอบริการที่ใช้ ตัวอย่างสำหรับ HTTP เช่น “GET”,”HEAD”,POST”,ฯลฯ
    • PATH_INFO
      ข้อมูลเพิ่มเติมของ path ที่ได้มาจาก client หากข้อมูลนี้ส่งมากับ URL ก่อนที่จะส่งต่อไปให้โปรแกรม CGI จะต้องถอดรหัสโดยserver ก่อน
    • PATH_TRANSLATED
      ข้อมูลที่ server แปลจาก PATH_INFO
    • SCRIPT_NAME
      virtual path ของโปรแกรม gateway ที่จะถูกเรียกใช้งาน ใช้สำหรับเป็น URL อ้างอิงของตัวมันเอง
    • QUERY_STRING
      ข้อมูลที่อยู่ต่อจากเครื่องหมาย ? ของ URL ซึ่งใช้อ้างอิงกับโปรแกรม gateway
    • REMOTE_HOST
      ชื่อเครื่อง (host name) ที่ร้องขอบริการ ถ้าหากว่า server ไม่มีข้อมูลนี้อยู่ ก็จะกำหนด REMOTE_ADDR และไม่กำหนดค่าตัวแปรนี้
    • REMOTE_ADDR
      IP address ของเครื่องที่ร้องขอบริการ
    • AUTH_TYPE
      ถ้าหาก server สนับสนุนการตรวจสอบผู้ใช้และโปรแกรม gateway ถูกป้องกันไว้สำหรับผู้ใช้ที่ได้รับอนุญาต ตัวแปรนี้จะกำหนดโปรโตคอลที่ใช้ในการตรวจสอบผู้ใช้
    • REMOTE_USER
      ถ้าหาก server สนับสนุนการตรวจสอบผู้ใช้และโปรแกรม gateway ถูกป้องกันไว้สำหรับผู้ใช้ที่ได้รับอนุญาต ตัวแปรนี้จะเป็นตัวแปรที่เก็บข้อมูลชื่อผู้ใช้ (username)
    • REMOTE_IDENT
      ถ้าหาก HTTP server สนับสนุน RFC 931identification ตัวแปรนี้จะถูกกำหนด การใช้งานของตัวแปรนี้จำกัดไว้เฉพาะการเก็บบันทึกการทำงานเท่านั้น
    • CONTENT_TYPE
      สำหรับ queries ที่มีข้อมูล attach มาด้วย เช่น HTTP POST และ PUT ตัวแปรนี้จะกำหนดเป็นชนิดของข้อมูลที่ attach มาด้วย
    • CONTENT_LENGTH
      ความยาวของข้อมูลที่ส่งมาจาก client

Input Form

  • GET Method
    • ข้อมูลทั้งหมดในฟอร์มถูกรวมไปใน URL
    • รูปแบบของ GET Method คือ <FORM ACTION=”myscript.cgi” METHOD=”GET”>
      http://some.machine/cgi-bin/myscript/cgi?command=test
    • สตริง command=test  เก็บไว้ในตัวแปร QUERY_STRING
    • มีการจำกัดจำนวนอักขระในการส่ง
  • POST METHOD
    • ไม่มีการรวมข้อมูลไปกับ URL
    • รูปแบบของ POST Method คือ <FORM ACTION=”myscript.cgi” METHOD=”POST”>
      http://some.machine/cgi-bin/myscript/cgi?
    • ใช้ตัวแปร CONTENT_LENGTH ในการบอกขนาดของจำนวนข้อมูลแบบไบต์
    • ไม่มีการจำกัดจำนวนอักขระในการส่ง

 ภาษาโปรแกรมที่ได้รับความนิยมสำหรับ CGI

  • Unix Shell Scripts
  • Perl
  • Python
  • Ruby

ข้อดี-เสียของ CGI

  • ข้อดี คือ  CGI เป็นโปรแกรมที่มีรูปแบบในลักษณะ Universal จึงสามารถนำไปใช้ได้กับทุก Web Server และทุกระบบปฏิบัติการ
  • ข้อเสีย คือ ความล่าช้าในการประมวลผล เนื่องจากแต่ละครั้งที่ Web Client เรียกใช้โปรแกรม CGI จะถูกมองเป็น 1 การประมวลผลทำให้ Web Server มีการประมวลผลที่ไม่จำเป็นเกิดขึ้น

 

ขอบคุณข้อมูลจาก :
http://www.th.easyhostdomain.com/static-dynamic-website.html
http://th.wikipedia.org/wiki/ไดนามิกเว็บเพจ
http://oreilly.com/openbook/cgi/ch02_03.html
http://www.oocities.org/touch_waan/cgi2.htm
http://www.mindphp.com/คู่มือ/73-คืออะไร/2126-cgi-คืออะไร.html

, , , , , , , , ,