GET และ POST Methods
คุณต้องเคยเจอสถานการณ์หลายครั้งที่ต้องส่งข้อมูลจาก Browser ไป Web Server และสุดท้ายไปยัง CGI Program Browser โดยส่วนใหญ่ใช้สองวิธีส่งข้อมูลนี้คือ GET Method และ POST Method
การส่งข้อมูลด้วย GET Method
GET Method ส่ง Encoded User Information ต่อท้าย Page Request หน้าและข้อมูลที่เข้ารหัสถูกแยกด้วยตัวอักษร ? ดังนี้ -
https://www.test.com/cgi-bin/hello.py?key1=value1&key2=value2
GET Method เป็น Default Method สำหรับส่งข้อมูลจาก Browser ไป Web Server และสร้าง String ยาวที่ปรากฏใน Location Box ของ Browser อย่าใช้ GET Method หากมี Password หรือข้อมูลละเอียดอ่อนอื่นๆ GET Method มีข้อจำกัดขนาด: ส่งได้แค่ 1024 ตัวอักษรใน Request String GET Method ส่งข้อมูลผ่าน QUERY_STRING Header และเข้าถึงได้ใน CGI Program ผ่าน Environment Variable QUERY_STRING
ตัวอย่าง URL แบบง่าย - GET Method
URL ง่ายๆ ที่ส่งค่าสองค่าให้ hello_get.py ด้วย GET Method
/cgi-bin/hello_get.py?first_name=ZARA&last_name=ALI
ตัวอย่าง FORM แบบง่าย - GET Method
ส่งค่าสองค่าโดย HTML FORM และ Submit Button ใช้ CGI Script เดียวกัน
<form action="/cgi-bin/hello_get.py" method="get">
First Name: <input type="text" name="first_name"><br />
Last Name: <input type="text" name="last_name" />
<input type="submit" value="Submit" />
</form>
การส่งข้อมูลด้วย POST Method
วิธีที่น่าเชื่อถือมากกว่าคือ POST Method บรรจุข้อมูลเหมือน GET Methods แต่แทนที่จะส่งเป็น Text String หลัง ? ใน URL มันส่งเป็น Message แยกต่างหาก Message นี้เข้ามาใน CGI Script ผ่าน Standard Input
Script hello_get.py เดียวกันจัดการทั้ง GET และ POST
<form action="/cgi-bin/hello_get.py" method="post">
First Name: <input type="text" name="first_name"><br />
Last Name: <input type="text" name="last_name" />
<input type="submit" value="Submit" />
</form>