นี่คือลิงค์ง่ายๆ ซึ่งเชื่อมโยงกับสคริปต์ CGI ชื่อ hello.py ไฟล์นี้ถูกเก็บไว้ในไดเร็กทอรี /var/www/cgi-bin และมีเนื้อหาดังต่อไปนี้ ก่อนเรียกใช้โปรแกรม CGI ตรวจสอบให้แน่ใจว่าคุณได้เปลี่ยนโหมดของไฟล์โดยใช้ chmod 755 hello.py คำสั่ง UNIX เพื่อให้ไฟล์ปฏิบัติการได้
ตัวอย่าง
#!/usr/bin/python print "Content-type:text/html\r\n\r\n" print '</html>' print '</head>' print '</title>Hello Word - First CGI Program<//title>' print '<//head>' print '</body>' print '</h2>Hello Word! This is my first CGI program<//h2>' print '<//body>' print '<//html>'
ผลลัพธ์
หากคุณคลิก hello.py สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
Hello Word! This is my first CGI program
สคริปต์ hello.py นี้เป็นสคริปต์ Python แบบง่าย ซึ่งเขียนเอาต์พุตในไฟล์ STDOUT เช่น หน้าจอ มีคุณลักษณะพิเศษที่สำคัญและพิเศษอยู่หนึ่งประการคือบรรทัดแรกที่จะพิมพ์ Content-type:text/html\r\n\r\n . บรรทัดนี้จะถูกส่งกลับไปยังเบราว์เซอร์และระบุประเภทเนื้อหาที่จะแสดงบนหน้าจอเบราว์เซอร์
ถึงตอนนี้ คุณต้องเข้าใจแนวคิดพื้นฐานของ CGI แล้ว และคุณสามารถเขียนโปรแกรม CGI ที่ซับซ้อนได้มากมายโดยใช้ Python สคริปต์นี้สามารถโต้ตอบกับระบบภายนอกอื่นๆ เพื่อแลกเปลี่ยนข้อมูล เช่น RDBMS
ส่วนหัว HTTP
บรรทัด Content-type:text/html\r\n\r\n เป็นส่วนหนึ่งของส่วนหัว HTTP ซึ่งถูกส่งไปยังเบราว์เซอร์เพื่อทำความเข้าใจเนื้อหา ส่วนหัว HTTP ทั้งหมดจะอยู่ในรูปแบบต่อไปนี้ -
HTTP Field Name: Field Content
ตัวอย่าง
Content-type: text/html\r\n\r\n
มีส่วนหัว HTTP ที่สำคัญอื่นๆ สองสามรายการ ซึ่งคุณจะใช้บ่อยในการเขียนโปรแกรม CGI ของคุณ
ซีเนียร์ | ส่วนหัวและคำอธิบาย |
---|---|
1 | ประเภทเนื้อหา: สตริง MIME ที่กำหนดรูปแบบของไฟล์ที่ส่งคืน ตัวอย่างคือ Content-type:text/html |
2 | หมดอายุ:วันที่ วันที่ข้อมูลกลายเป็นโมฆะ ใช้โดยเบราว์เซอร์เพื่อตัดสินใจว่าจะต้องรีเฟรชหน้าเมื่อใด สตริงวันที่ที่ถูกต้องอยู่ในรูปแบบ 01 มกราคม 1998 12:00:00 GMT |
3 | ตำแหน่ง:URL URL ที่ส่งคืนแทน URL ที่ร้องขอ คุณสามารถใช้ฟิลด์นี้เพื่อเปลี่ยนเส้นทางคำขอไปยังไฟล์ใดก็ได้ |
4 | แก้ไขล่าสุด:วันที่ วันที่แก้ไขทรัพยากรครั้งล่าสุด |
5 | ความยาวเนื้อหา:ไม่มี ความยาวเป็นไบต์ของข้อมูลที่ส่งคืน เบราว์เซอร์ใช้ค่านี้เพื่อรายงานเวลาดาวน์โหลดโดยประมาณสำหรับไฟล์ |
6 | ชุดคุกกี้:สตริง ตั้งค่าคุกกี้ที่ส่งผ่าน สตริง |