Script output
โปรแกรม gateway
จะส่งผลลัพธ์ของการทำงานออกมาทาง
stdout (standard output)
ผลลัพธ์นี้จะเป็นได้ทั้งเอกสาร(html
หรือ อื่นๆ)
หรือ
ชุดคำสั่งที่จะสั่งให้
server
นำข้อมูลที่ต้องการออกมาแแสดงผล
การตั้งชื่อของโปรแกรม
gateway
ปกติโปรแกรม
gateway
จะส่งผลลัพธ์ซึ่งประมวลผลเสร็จแล้วและส่งกลับไปยัง
browser
จะมีข้อดีคือไม่จำเป็นต้องส่ง
HTTP/1.0 header
ทั้งหมดสำหรับทุกๆการร้องขอ
โปรแกรม gateway
บางโปรแกรมต้องการที่จะจัดการกับ
header
เหล่านี้เองและติดต่อกับ
browser โดยตรง
เพื่อแยกโปรแกรมนี้ออกจากโปรแกรมอื่นๆ
ต้องกำหนดให้
CGI รู้
โดยกำหนดชื่อโปรแกรม
gateway
ให้นำหน้าด้วย
nph-
ถ้าหากโปรแกรม
gateway
ไม่ต้องการให้
server
เข้ามาจัดการ
header ของตัวเอง
เช่นกรณีที่โปรแกรมต้องการส่ง
HTTP/1.0
ที่ถูกต้อง(หรือ
HTTP 0.9) ไปยัง browser
Parsed header
ผลลัพธ์ของโปรแกรม
gateway
จะเริ่มต้นด้วย
header เล็กๆ header
นี้จะประกอบด้วยข้อความที่อยู่ในรูปของ
HTTP header
จบท้ายด้วยบรรทัดว่า
1 บรรทัด (บรรทัดว่างที่มีเฉพาะ
LF หรือ CR/LF
เท่านั้น)
header
ใดๆก็ตามที่ไม่เป็น
server directive
จะถูกส่งตรงไปยัง
browser, server directives 3
อย่างที่ถูกกำหนดไว้มีดังนี้
Content-type
เป็นตัวบอกชนิด
MIME
ของเอกสารที่จะส่งกลับไปยัง
browser
Location
ใช้กำหนดว่าจะอ้างอิงถึงเอกสารอื่นๆที่นอกเหนือจากเอกสารนั้น
หากกำหนด argument
ให้เป็น URL server
จะจัดการ redirect
browser
ไปยังเอกสารที่
URL นั้นระบุ
หากกำหนด argument
เป็น path server
จะจัดการดึงเอกสารที่ถูกระบุส่งกลับไปให้
browser
Status
เป็นตัวบอก
server ถึง HTTP/1.0 status line
ที่จะส่งกลับไปยัง
browser
รูปแบบจะอยู่ในรูป
nnn xxxxx โดยที่ nnn
เป็นรหัสตัวเลข
3 หลัก (เช่น 401)
และ xxxxx
เป็นข้อความบอกเหตุ
(เช่น "Forbidden")
ตัวอย่าง
มีโปรแกรม
gateway
โปรแกรมหนึ่งที่ใช้จัดการกับข้อมูลที่กรอกมาใน
form
เมื่อประมวลผลข้อมูลเสร็จแล้วจะส่งผลลัพธ์ออกไปยัง
stdout (บรรทัดที่เริ่มด้วย
---
มีไว้เพื่อแสดงให้เห็นถึงจุดเริ่มและจบเท่านั้น
ไม่ใช่ผลลัพธ์ที่ส่งออกมาจริงๆ)