D Server
เนื้อหาของเรา
- กลับหน้าแรก
- CGI-Perl WebBoard
- Php3 WebBoard
- Developer WebBoard
บริการของเรา
- Free GuestBook
- Free Counter
- Free WebBoard
- Free Stats
- Free JumpBox
- Free E-Mail
ข้อมูลของเรา
- ข่าวประกาศ
- D'Server คืออะไร?
- ทีมงาน D'Server
- ติดต่อลงโฆษณา
- ข้อมูลการติดต่อทีมงาน
- ข้อตกลงการให้บริการ
Bandwidth Support by Internet Thailand
Power by Apache
Power by FreeBSD
SSI (Server Side Include)
ทำความรู้จักกับ SSI
SSI ย่อมาจาก Server Side Include (คนละอันกับ SSL นะครับ รายนั้นย่อมาจาก Secure Socket Layer) แปลความหมายตรงๆตัวก็แปลได้ว่า "ถูกรวมเข้ามาโดยฝั่ง Server" นั่นคือการแปลความหมายกันแบบกำปั้นทุบดิน SSI จะทำงานที่ฝั่ง Server โดย Server จะทำการประมวลผลเอกสารที่ถูกกำหนด ให้ประมวลผลเสียก่อน จากนั้นจึง ส่งข้อมูลที่ประมวลผลแล้วนั้น มาในรูปแบบของเอกสารปกติ โดยปกติแล้วในระบบ การทำงานของ WWW จะมีส่วนประกอบหลักๆพื้นฐานอยู่ 2 ฝั่ง คือฝั่ง Client ก็คือ Browser ส่วนฝั่ง Server ก็คือ Web Server ทั้งหลายแหล่ Javascript เป็น ตัวอย่างหนึ่งของการทำงานที่ฝั่ง Client และ CGI Script , ASP, Php ทั้งหลาย เหล่านี้รวมทั้ง SSI เป็นตัวอย่างหนึ่งสำหรับ การทำงานที่ฝั่ง Server

ที่มักจะพบเห็นกันบ่อยๆ จะมีบางไซต์ ที่มีเอกสาร .shtml โดยทั่วไปเอกสารที่จะใช้ SSI ได้มักจะถูกกำหนดให้เป็นไฟล์ที่ใช้นามสกุลว่า .shtml แต่ก็ขึ้นอยู่กับผู้ดูแลระบบ จะกำหนดใน Web Server ว่าจะให้เป็น นามสกุลอะไร ไม่จำเป็นเสมอไปว่าจะต้อง เป็น .shtml เท่านั้น เพียงแต่มักจะกำหนดกันเป็น .shtml จนกลายเป็นประเพณีนิยมกันไปแล้ว แล้วก็ไม่ใช่ว่าทุก Server จะกำหนดให้ใช้ SSI ได้นะครับ Server บางที่ก็ไม่อนุญาต ให้ใช้ SSI ได้ ก็แล้วแต่ผู้ดูแลระบบจะกำหนดเช่นกัน
การทำงานของ SSI
ภาพการทำงานของ SSI

มาดูรูปประกอบกันนะครับ จากรูปด้านบน ปกติแล้วสำหรับเอกสาร html ทั่วๆไป เมื่อมีการร้องขอจาก Browser มายัง Server ตัว Server ก็จะไปดึงข้อมูลจากอุปกรณ์เก็บข้อมูล และส่ง ไปยัง Browser โดยตรง แต่สำหรับเอกสารที่ใช้ SSI ด้วยนั้น เมื่อมีการเรียกข้อมูล เข้ามาจาก Browser ตัว Server จะไปดึงข้อมูลจากแฟ้มข้อมูลนั้นๆ มาประมวลผล เพื่อจัดการกับ ชุดคำสั่ง SSI เสียก่อน แล้วนำผลลัพธ์การประมวลผลนั้นๆ แทนที่ ข้อความ ณ ตำแหน่งที่เราได้เขียน ชุดคำสั่ง SSI แทรกไว้ แล้วจึงส่งไปให้กับ Browser เหมือน กับเป็นเอกสาร html ทั่วๆไป
ประโยชน์ของ SSI
ถ้าหากว่าเราต้องการที่จะสร้างหน้าเวปที่แสดงข้อมูลบางอย่างแบบ dynamic เช่น ให้แสดง วันเวลาปัจจุบัน หรือ Browser ที่ผู้ใช้นั้นใช้อยู่ และอื่นๆ ถ้าหากจะต้องเขียน เป็นโปรแกรม CGI Script เพื่อทำงานเพียงเท่านั้น ก็เห็นจะเป็นการจับช้างขี่ตั๊กแตน ไปเสียหน่อย คุณสามารถทำสิ่งเหล่านี้ได้ง่ายๆ โดยใช้ชุดคำสั่ง SSI แทรกไว้ในไฟล์ html ณ จุดที่ต้องการจะแทรก ให้มันแสดงผลตามทีเราต้องการ

หรือหากว่าเรามีเวปเพจอยู่ในเวปไซต์อยู่เป็นจำนวนมาก ซัก 400 - 500 หน้า และแต่ละ หน้าก็มักจะมีส่วนที่เหมือนกันอยู่ทุกหน้า เช่น Menu bar, Navigator bar ด้านบน การที่จะต้องมาเขียนแทรกสิ่งเหล่านั้นเข้าไปทุกหน้า มันก็จะช้า แล้วยิ่งเมื่อเราต้องการ เปลี่ยนแปลงสิ่งที่เหมือนกันอยู่ทุกหน้านั้น เราก็ต้องคอยมาไล่แก้กันทีละหน้าๆ ซึ่งก็จะยิ่ง เสียเวลาหนักเข้าไปอีก เมื่อเปรียบเทียบกับการสร้างแฟ้มข้อมูลเก็บข้อมูลกลุ่มที่เหมือนกัน นั้นไว้ไฟล์เดียว และใช้ SSI เรียกให้นำมาแทรกในหน้าอื่นๆ เมื่อต้องการแก้ไข ก็แก้ เพียงแค่ครั้งเดียว มีผลกับเวปไซต์ทั้งเวป มี 100 หน้าก็มีผล 100 หน้า มี 1000 หน้า ก็มีผล 1000 หน้า

เหล่านี้คือส่วนหนึ่งของประโยชน์ของ SSI นะครับ ซึ่งจริงๆแล้วมันก็สามารถทำ ประโยชน์ได้อีกหลายอย่าง ถ้าหากเรานำไปประยุกต์ใช้ครับ
ข้อเสียหละ ?
แน่นอนครับ อะไรที่มันมีข้อดีก็ย่อมมีข้อเสียอยู่ด้วยเช่นกัน ข้อเสียหลักๆของ SSI ที่ มองเห็นได้ชัดมีด้วยกัน 2 ประเด็น ประเด็นแรกก็คือ มันต้องแลกมาด้วยการทำงาน ที่หนักขึ้นสำหรับ Web Server หากว่าเวปไซต์ของคุณใช้ SSI เพื่อทำอะไรซักอย่าง เช่นการแทรก code ป้ายโฆษณา หรืออื่นๆ ทุกๆหน้า และเวปไซต์ของคุณได้รับ ความนิยมอย่างล้นหลาม Server จะต้องประมวลผลทุกๆครั้ง ที่มีการเข้าชมเวปไซต์ ของคุณ แทนที่จะได้ทำงานแค่อ่านข้อมูลและส่งไป อ่านข้อมูลและส่งไป กลับต้องมา ทำงานเพิ่ม เป็น อ่านข้อมูล ประมวลผล และส่งไป อ่านข้อมูล ประมวลผล และส่งไป ขั้นตอนที่เพิ่มขึ้นมานี้เอง ที่เป็นข้อเสียของ SSI แต่ก็อย่างว่า ถ้าหากเวปไซต์ของคุณ มีผู้เข้าเยี่ยมชมมาก แน่นอนมันหมายถึงโอกาส และเงินตรา ก็คงจะไหลเข้ามามากขึ้น ได้เช่นกัน คุณก็มีโอกาสที่จะใช้เป็นทุนในการปรับปรุง Web Server ได้ ไหนจะข้อดี จากที่ไม่ต้องเสียเวลา แทรก html code ซ้ำๆกันทุกๆหน้าอีก เปรียบเทียบกันแล้ว คิดว่าอันไหนน่าจะเหมาะสมกับงานของคุณมากกว่ากัน ก็ลองชั่งน้ำหนักดูนะครับ

อีกประเด็นนึงคือในแง่ของความปลอดภัย โดยชุดคำสั่งของ SSI เอง มีบางคำสั่ง ที่มีผลเช่นเดียวกับการเรียกใช้งานโปรแกรมในระบบ เช่นคำสั่ง exec ซึ่งอาจจะมี ผลต่อความปลอดภัยของระบบได้ด้วยเช่นกัน ซึ่งผู้ดูแลระบบหลายๆที่ มักจะไม่อนุญาต ให้ใช้ คำสั่ง exec ใน SSI ได้ เพื่อเหตุผลทางด้านความปลอดภัยนี้นี่เอง เพราะฉนั้น ในการนำเอา SSI มาใช้ก็ควรจะคำนึงถึงจุดนี้ด้วยเช่นกัน


[ สนับสนุนช่องทางข้อมูลโดย Internet Thailand | สงวนลิขสิทธิ์ (c) Dream Group 2542 | ข้อตกลงการบริการ | ทีมงาน Dream Group | แนะนำติชม มาที่ webmonster@dserver.org ]