ภาษาเพิร์ล (Perl)

Perl เป็นตัวย่อของ [Practical Extraction and Report Language] ซึ่งเป็นภาษาโปรแกรมที่สามารถทำงานบนหลายแพลตฟอร์ม เช่น UNIX OS และ Windows OS ภาษาได้รับการพัฒนาโดย Larry Wall ในปี 1987
สำหรับบทความฉบับเต็มบน Perl ...

แสดงตัวกรอง
ตัวกรองโฮสติ้ง
A2 Themes & Host Me Filter

ระบบปฏิบัติการ

พื้นที่ดิสก์

หน่วยความจำ RAM

ประเภทดิสก์

แกน CPU

จัดเรียง

คะแนน - 0
Host Hong Kong.net Logo
Host Hong Kong.net

โฮสต์ HongKong.net

Personal
$6.45 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


Host Hong Kong.net Servers in Netherlandsเนเธอร์แลนด์ Host Hong Kong.net Servers in Hong Kongฮ่องกง Host Hong Kong.net Servers in United Statesสหรัฐ
เปรียบเทียบ
คะแนน - 0
Jet Orbit Logo
Jet Orbit

เจ็ทโคจร

PLUTO
$0.87 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


Jet Orbit Servers in United Statesสหรัฐ Jet Orbit Servers in Indonesiaอินโดนีเซีย
เปรียบเทียบ
คะแนน - 0
shneider-host.ru Logo
shneider-host.ru

shneider-host.ru

First
$1.95 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


shneider-host.ru Servers in Amsterdamเนเธอร์แลนด์ shneider-host.ru Servers in Saint Petersburgสหพันธรัฐรัสเซีย
เปรียบเทียบ
คะแนน - 0
Nexanow Logo
Nexanow

เน็กซาโนว์

Mini Shared Hosting 1
$0.35 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


Nexanow Servers in Mumbaiอินเดีย Nexanow Servers in Gelsenkirchenเยอรมนี Nexanow Servers in Findlayสหรัฐ
เปรียบเทียบ
คะแนน - 0
Super Byte Hosting Logo
Super Byte Hosting

โฮสติ้ง Super Byte

- Basic
$1.5 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


Super Byte Hosting Servers in Los Angelesสหรัฐ Super Byte Hosting Servers in Mumbaiอินเดีย
เปรียบเทียบ
คะแนน - 0
Super Byte Hosting Logo
Super Byte Hosting

โฮสติ้ง Super Byte

- Basic
$1.5 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


Super Byte Hosting Servers in Los Angelesสหรัฐ Super Byte Hosting Servers in Mumbaiอินเดีย
เปรียบเทียบ
คะแนน - 0
R9Host Logo
R9Host

R9Host

Basic
$2.24 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


R9Host Servers in Franceฝรั่งเศส
เปรียบเทียบ
คะแนน - 0
Unlimited.ID Logo
Unlimited.ID

ไม่ จำกัด ID

Basic
$1.37 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


Unlimited.ID Servers in Indonesiaอินโดนีเซีย
เปรียบเทียบ
คะแนน - 0
taghosting.ru Logo
taghosting.ru

taghosting.ru

H1
$1.8 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


taghosting.ru Servers in Moscowสหพันธรัฐรัสเซีย
เปรียบเทียบ
คะแนน - 0
Wevrlabs Logo
Wevrlabs

Wevrlabs

STARTER
$2.2 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


Wevrlabs Servers in Seattleสหรัฐ Wevrlabs Servers in Torontoแคนาดา Wevrlabs Servers in Sydneyออสเตรเลีย Wevrlabs Servers in Londonประเทศอังกฤษ Wevrlabs Servers in Parisฝรั่งเศส Wevrlabs Servers in Amsterdamเนเธอร์แลนด์ Wevrlabs Servers in Tokyoญี่ปุ่น Wevrlabs Servers in Frankfurt am Mainเยอรมนี
เปรียบเทียบ
คะแนน - 0
XHN.ES Logo
XHN.ES

XHN.ES

Plan XHN-1
$13.12 /รายเดือน

เปรียบเทียบ
คะแนน - 0
Ready Space Logo
Ready Space

พื้นที่พร้อม

WebSpace Basic
$2.5 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


Ready Space Servers in Hong Kongฮ่องกง Ready Space Servers in Dallasสหรัฐ Ready Space Servers in Jakartaอินโดนีเซีย Ready Space Servers in Makati Cityฟิลิปปินส์ Ready Space Servers in Ho Chi Minh Cityเวียดนาม Ready Space Servers in Seoulเกาหลีใต้ Ready Space Servers in Sydneyออสเตรเลีย Ready Space Servers in Kuala Lumpurมาเลเซีย Ready Space Servers in Bangkokประเทศไทย Ready Space Servers in Singaporeสิงคโปร์
เปรียบเทียบ
คะแนน - 0
Name Host.ro Logo
Name Host.ro

ชื่อ Host.ro

PLAN 1
$0.68 /รายเดือน

เปรียบเทียบ
คะแนน - 0
readyspace.com.my Logo
readyspace.com.my

readyspace.com.my

WebSpace Basic
$2.5 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


readyspace.com.my Servers in Hong Kongฮ่องกง readyspace.com.my Servers in Malaysiaมาเลเซีย readyspace.com.my Servers in Singaporeสิงคโปร์ readyspace.com.my Servers in United Statesสหรัฐ
เปรียบเทียบ
ไว้วางใจนักบิน Miles Web
คะแนน - 9.6
Miles Web Logo
Miles Web

เว็บไมล์

Economy
$0.92 /รายเดือน

รีวิว 1925


ตำแหน่งเซิร์ฟเวอร์


Miles Web Servers in Romaniaโรมาเนีย Miles Web Servers in Chicagoสหรัฐ Miles Web Servers in Londonประเทศอังกฤษ Miles Web Servers in Bangkokประเทศไทย Miles Web Servers in Torontoแคนาดา Miles Web Servers in Sydneyออสเตรเลีย Miles Web Servers in Dubaiสหรัฐอาหรับเอมิเรตส์ Miles Web Servers in Indiaอินเดีย Miles Web Servers in Singaporeสิงคโปร์
เปรียบเทียบ

Perl เป็นภาษาที่ตีความหมายและย่อมาจาก Practical Extraction and Report Language (ภาษาสำหรับการดึงข้อมูลและการรายงานในทางปฏิบัติ)

 

ตัวอย่างเช่นด้วย Perl คุณสามารถสร้างสคริปต์ที่เปิดไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไปประมวลผลข้อมูลและเขียนผลลัพธ์

 

 

what is perl hosting

 

Perl เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการสื่อสารกับเว็บเซิร์ฟเวอร์ผ่าน Common Gateway Interface (CGI) ซึ่งเป็นอินเทอร์เฟซการสื่อสารทั่วไป

คำสั่ง Perl สามารถรับข้อมูลจากรูปแบบ HTML หรือแหล่งอื่น ๆ และทำบางสิ่งกับมันได้อย่างง่ายดาย

 

Perl Hosting

 

ภาษาโปรแกรมอื่นที่ไม่เพียง แต่ได้รับความนิยมในอดีต แต่ยังคงใช้โดยนักพัฒนาเว็บในปัจจุบันคือ Perl ชื่อภาษาย่อมาจาก - "ภาษาที่ใช้ได้จริงสำหรับการดึงข้อมูลและการรายงาน" Perl มอบโอกาสมากมายในการพัฒนาแอพพลิเคชั่นโปรแกรมระบบที่รัดกุมและมีประสิทธิภาพ

 

การให้บริการโฮสติ้งสำหรับ Perl ไม่จำเป็นต้องมีคุณสมบัติพิเศษใด ๆ โฮสติ้งที่เปิดใช้งาน Perl ทำงานได้สองวิธี - CGI หรือ mod_perl ภาษามีลักษณะความเร็วและความน่าเชื่อถือ การแจกแจง Perl พร้อมใช้งานสำหรับทุกแพลตฟอร์ม หากเราพิจารณาไปในทิศทางที่มีแนวโน้มความหวังทั้งหมดจะเกี่ยวข้องกับการเปิดตัวภาษาเวอร์ชันที่หก นอกจากนี้ความคาดหวังคือการใช้ Perl framework สมัยใหม่ตัวอย่างเช่น Catalyst

 

คุณลักษณะของภาษาโปรแกรมนี้คือไลบรารีโมดูล CPAN ซึ่งเป็นเรื่องปกติสำหรับผู้ใช้โฮสติ้งทั้งหมด มีเอกสารและซอฟต์แวร์จำนวนมาก คุณภาพและประสิทธิภาพของโฮสติ้ง Perl ขึ้นอยู่กับเนื้อหานี้

 

Perl เป็นภาษาโปรแกรมที่เรียกว่า Perl ซึ่งช่วยให้คุณสามารถสร้างเว็บเพจแบบไดนามิกเช่นกระดานข่าว

 

Perl เป็นภาษาโปรแกรมที่ใช้กลไกของ CGI บนเว็บเซิร์ฟเวอร์ ด้วยการเรียกใช้โปรแกรมที่เขียนด้วยภาษา Perl สามารถเริ่ม CGI และสร้างหน้าเว็บแบบไดนามิกได้

 

Perl เป็นเทคโนโลยีฝั่งเซิร์ฟเวอร์ที่จะทำงานบนเซิร์ฟเวอร์ซึ่งแตกต่างจาก JavaScript

 

ควรสังเกตว่าหาก CGI หมดการควบคุมบนเซิร์ฟเวอร์เช่า (เซิร์ฟเวอร์ที่ใช้ร่วมกัน) และเซิร์ฟเวอร์หยุดทำงานข้อ จำกัด การใช้งานอาจเกิดขึ้น

 

CGIเป็นคำย่อของ [Common Gateway Interface] ซึ่งเป็นโปรแกรมฝั่งเซิร์ฟเวอร์ที่สร้างเว็บเพจแบบไดนามิกเช่นกระดานข่าวและการสนทนา ด้วยการใช้ CGI คุณสามารถสร้างเว็บเพจแบบไดนามิกโดยใช้ภาษาโปรแกรมเช่น Ruby, Python และ Perl คุณสามารถสร้างตัวนับการเข้าถึงดั้งเดิมหรือตะกร้าสินค้าและเผยแพร่บนเว็บไซต์ ปัจจุบันมีการใช้งานโดยเว็บเซิร์ฟเวอร์จำนวนมาก CGI สามารถใช้ในภาษาใดก็ได้รวมถึง Perl, Ruby และ C แต่ภาษาที่ได้รับความนิยมมากที่สุดคือภาษา Perl

 

พื้นหลังโฮสติ้ง Perl

 

Perl เป็นคำย่อของ [Practical Extraction and Report Language] ซึ่งเป็นภาษาโปรแกรมที่สามารถทำงานบนแพลตฟอร์มต่างๆเช่น UNIX OS และ Windows OS ภาษานี้ได้รับการพัฒนาโดย Larry Wall ในปี 1987 โดยใช้กันอย่างแพร่หลายในฐานะภาษาการเขียนโปรแกรมสำหรับการพัฒนาสำหรับการสร้างเว็บแอปพลิเคชันการจัดการระบบการประมวลผลข้อความ ฯลฯ โดยเฉพาะอย่างยิ่งภาษานี้มีความสามารถในการประมวลผลไฟล์เช่นการค้นหาและการแยกข้อความ Perl เป็นภาษาสคริปต์ในภาษาโปรแกรม

 

ภาษาสคริปต์เป็นคำทั่วไปสำหรับภาษาโปรแกรมประเภทหนึ่งที่ตีความและดำเนินการโปรแกรมที่ค่อนข้างง่ายในการเขียนและดำเนินการเช่นเดียวกับสคริปต์ นอกจากนี้คุณสมบัติอย่างหนึ่งของโปรแกรมที่เขียนขึ้นคือขั้นตอนที่ถึงการดำเนินการนั้นง่ายขึ้นและสามารถแสดงผลลัพธ์ได้ทันที ภาษาสคริปต์ที่รู้จักกันดี ได้แก่ JavaScript, Perl, Python, PHP และ Ruby Perl มีการแจกจ่ายโดยไม่เสียค่าใช้จ่ายเป็น GPL (ใบอนุญาตสาธารณะทั่วไปของ GNU: ใบอนุญาตซอฟต์แวร์ = ใบอนุญาตซอฟต์แวร์ฟรี)

 

สัญกรณ์ของ Perl คล้ายกับ C แต่รวมเอาคุณสมบัติที่ยอดเยี่ยมของ C และภาษาโปรแกรมอื่น ๆ เช่น sed, awk และเชลล์สคริปต์ เนื่องจากเป็นล่ามประเภทที่ไม่ต้องการการประมวลผลการคอมไพล์ (การแปลงเป็นรูปแบบที่สามารถดำเนินการบนคอมพิวเตอร์) จึงสามารถดำเนินการได้ทันทีหลังจากเขียนโปรแกรม

มีความสามารถในการประมวลผลความเร็วสูงแม้ในภาษาสคริปต์และมีความเข้ากันได้แบบย้อนหลังสูง (เข้ากันได้กับเวอร์ชันเก่า)

 

คุณยังสามารถเพิ่มฟังก์ชันใหม่เป็นโมดูล ยกตัวอย่างเช่น Benchmark, base, Encode, utf8, file :: Basename, File: Copy, File: Path, File: Spec, File: Temp, Net: FTP, Scalar: Util, Storable, Sys: อาจกล่าวได้ว่า ยังเป็นคุณสมบัติใหญ่ที่มีโมดูลจำนวนมากที่สามารถใช้เป็นมาตรฐานเช่น Hostname, Time: Piece, FindBin และอื่น ๆ

 

นอกจากนี้ยังเป็นข้ามแพลตฟอร์มและสามารถทำงานบนเซิร์ฟเวอร์ได้เกือบทุกประเภทรวมถึงระบบปฏิบัติการที่เหมือน UNIX, ระบบปฏิบัติการที่ใช้ Windows, Mac OS, Linux OS และเว็บเซิร์ฟเวอร์เช่น Apache และ IIS

 

ในทางกลับกันนักพัฒนายังกล่าวว่านอกเหนือจากภาษาการสกัดเชิงปฏิบัติและภาษารายงานซึ่งหมายถึง "ภาษาการสร้างรายงานการได้มาซึ่งข้อมูลที่ใช้ได้จริง" แล้วยังมีความหมายที่ซ่อนอยู่ของ Pathologically Eclectic Rubbish Lister "อุปกรณ์ส่งออกขยะที่น่าเศร้าทางพยาธิวิทยา"

 

CGI Web Hosting ทำงานอย่างไรใน Perl

 

คำว่า CGI มาจาก Common Gateway Interface เป็นเพียงการกำหนดอีกแบบหนึ่งสำหรับสิ่งที่เรารู้จักกันในชื่อ API (Application Programming Interface) สรุปเรื่องราว CGI เป็นเพียง API สำหรับเว็บเซิร์ฟเวอร์

 

ในทางกลับกันเว็บเซิร์ฟเวอร์เป็นซอฟต์แวร์ที่ส่งหน้าเว็บไปยังเว็บเบราว์เซอร์ (เบราว์เซอร์เช่นInternet ExplorerหรือNetscape). ในทางเทคนิคควรเรียกเบราว์เซอร์ว่าเว็บลูกค้าและผู้ที่ใช้ควรเรียกว่าเบราว์เซอร์

 

มีข้อมูลมากมายเกี่ยวกับ CGI บนอินเทอร์เน็ตอย่างไรก็ตามส่วนใหญ่ไม่ตรงกันและเต็มไปด้วยตำนานและอคติ มาชี้แจงข้อสงสัยโดยรายงานสิ่งที่ไม่ใช่ CGI

 

CGI ไม่ใช่ภาษาโปรแกรมนั่นหมายความว่าคุณสามารถใช้ภาษาใดก็ได้ที่คุณเลือกเพื่อเขียนโปรแกรม CGI เป็นที่ชัดเจนว่าภาษาที่เลือกจะต้องสามารถอ่าน "อินพุต" และเขียน "เอาต์พุต" ได้ คุณรู้จักภาษาโปรแกรมใดที่ไม่มีความเป็นไปได้ดังกล่าวหรือไม่?

 

คุณไม่จำเป็นต้องใช้ภาษา Perl Perl สามารถใช้งานได้เช่นเดียวกับภาษาอื่น ๆ เช่น PHP, C, Phyton, Object Pascal เป็นต้นซึ่งไม่ได้มีไว้สำหรับผู้เชี่ยวชาญในระบบ Unix เท่านั้น ในความเป็นจริงไม่จำเป็นต้องเป็นผู้เชี่ยวชาญทักษะการเขียนโปรแกรมขั้นพื้นฐานก็เพียงพอแล้ว

 

ไม่ใช่รูปแบบการเขียนโปรแกรม ใช้สไตล์ของคุณเองเพราะมีเพียง "อินพุต" และ "เอาต์พุต" เท่านั้นที่เราสามารถทำให้เว็บเซิร์ฟเวอร์ "สนทนา" กับ CGI ได้

ดูเหมือนจะเป็นเรื่องตลก แต่เว็บเซิร์ฟเวอร์ก็รอ - เว้นแต่จะมีการเข้าถึงไซต์จำนวนมาก

 

สิ่งที่เว็บเซิร์ฟเวอร์กำลังรอไม่มีอะไรมากไปกว่าไคลเอนต์เบราว์เซอร์ที่ร้องขอไฟล์ ไฟล์นี้สามารถเป็นหน้า HTML กราฟิกหรือไฟล์ประเภทอื่น ๆ

 

เมื่อเว็บเซิร์ฟเวอร์ได้รับคำขอจะดำเนินการสามงานตามลำดับต่อไปนี้:


  • ส่งบรรทัดข้อความตื้นที่มีประเภทของไฟล์ที่จะส่งนั่นคือ HTML, GIF, JPEG หรืออื่น ๆ

  • ส่งบรรทัดว่าง

  • ส่งเนื้อหาของไฟล์

 

เว็บเซิร์ฟเวอร์ส่งไฟล์อย่างไร

 

ทีละครั้ง น่าอัศจรรย์เพียงหนึ่ง

 

เราทราบดีว่าหน้าเว็บทั่วไปประกอบด้วยเอกสาร HTML และกราฟิกบางส่วน แต่ละไฟล์เป็นไฟล์ที่แตกต่างกันที่ต้องส่งไปยังเบราว์เซอร์ เนื่องจากเว็บเซิร์ฟเวอร์ส่งไฟล์เพียงครั้งละหนึ่งไฟล์เบราว์เซอร์จึงต้องเริ่มเซสชันใหม่ (คำขอ) สำหรับแต่ละไฟล์ที่ต้องการ โชคดีที่ทั้งเว็บเซิร์ฟเวอร์และเบราว์เซอร์ทำงานแบบมัลติทาสก์ได้ เบราว์เซอร์สามารถร้องขอไฟล์หลายไฟล์พร้อมกันและเว็บเซิร์ฟเวอร์สามารถส่งไฟล์หลายไฟล์พร้อมกันอย่างไรก็ตามสำหรับไฟล์ที่ส่งที่ร้องขอแต่ละไฟล์จำเป็นต้องมีเซสชันแยกกัน

 

เว็บเซิร์ฟเวอร์สามารถส่งไฟล์ได้เท่านั้นหรือไม่?

 

ไม่จำเป็น. ในความเป็นจริงสิ่งที่เกิดขึ้นเป็นเพียงการถ่ายโอนข้อมูล โปรดจำไว้ว่าเซิร์ฟเวอร์และไคลเอนต์ (เบราว์เซอร์) มักจะทำงานบนคอมพิวเตอร์คนละเครื่อง พวกเขายังสามารถใช้ระบบปฏิบัติการที่แตกต่างกันบนเครื่องที่มีไมโครโปรเซสเซอร์ต่างกัน เบราว์เซอร์ร้องขอ "ทรัพยากร" เท่านั้นและไม่ทราบและไม่จำเป็นต้องรู้ว่าเซิร์ฟเวอร์รับข้อมูลมาจากที่ใด

 

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

 

การส่งข้อมูลแบบไดนามิกต้องทำอย่างไร

 

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

 

นี่คือวิธีที่โปรแกรม CGI ขยายการทำงานของเซิร์ฟเวอร์ในลักษณะเดียวกับที่เช่น DLL ขยายการทำงานของ Windows แต่มีความแตกต่างอย่างมาก: CGI นั้นเขียนง่ายกว่า Windows มาก

 

แต่จะพูดคุยกับเบราว์เซอร์ได้อย่างไร?

 

ไม่จำเป็นต้องพูดกับเบราว์เซอร์ เป็นเซิร์ฟเวอร์ที่ทำงานนี้ ส่วนที่ดีที่สุดของเกมคือคุณไม่จำเป็นต้องคุยกับเซิร์ฟเวอร์ สิ่งที่คุณต้องทำคือเขียนลงในเอาต์พุตมาตรฐาน (เอาต์พุตมาตรฐาน) ในทำนองเดียวกันตัวอย่างเช่นคุณใช้ printf () จากภาษา C

 

สิ่งเดียวที่ไม่สามารถละสายตาได้คือลำดับของงานทั้งสามที่ดำเนินการโดยเซิร์ฟเวอร์ในการส่งข้อมูล (ดังกล่าวข้างต้น) เนื่องจากเซิร์ฟเวอร์ไม่ทราบประเภทของข้อมูลที่คุณจะส่งคุณจึงต้องจัดหาเอาต์พุตมาตรฐานพร้อมข้อมูลนี้

 

ได้กล่าวไว้ข้างต้นว่าคุณสามารถใช้สไตล์ของคุณเองได้ มาเถอะ: สมมติว่าเซิร์ฟเวอร์ของคุณทำงานภายใต้ DOS ตามความเป็นจริงไม่มีเซิร์ฟเวอร์แบบนั้น แต่มีเซิร์ฟเวอร์ Windows และ Windows สามารถตีความคำสั่ง MS-DOS ได้ ลองนึกภาพว่าคุณต้องการส่งรายการไดเรกทอรีปัจจุบันของคุณไปยังเว็บ (ไม่ใช่ความคิดที่ดี แต่จะแสดงให้เห็นว่างานนี้ง่ายเพียงใด) MS-DOS ยังมีคำสั่งโดยตรงที่ส่งรายการไดเร็กทอรีไปยังเอาต์พุตมาตรฐาน ดังนั้นในทางทฤษฎีเราสามารถสร้างสคริปต์ต่อไปนี้:

 

1. งาน: ระบุประเภทของข้อมูลที่จะส่ง:

2. งาน: ส่งบรรทัดว่าง:

3. งาน: ส่งเนื้อหา:

 

ตัวอย่างข้างต้นเป็นเพียงการจำลองวิธีการทำงานของสคริปต์ CGI โดยใช้องค์ประกอบที่คนส่วนใหญ่รู้จัก ยกมาเพื่อให้เข้าใจหลักการของผลลัพธ์และไม่ใช้งานได้จริง ตอนนี้อีกขั้นตอนหนึ่ง ...

 

วิธีรับข้อมูล

 

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

 

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

 

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

 

เบราว์เซอร์ค้นหาอินพุตของผู้ใช้ที่ไหน

 

เบราว์เซอร์ยอมรับการป้อนข้อมูลโดยใช้รูปแบบ HTML แบบฟอร์มสามารถสั่งให้เบราว์เซอร์ส่งข้อมูลโดยใช้สองวิธี: GET และ POST

 

เมธอด GET ส่งรายการเป็นส่วนหนึ่งของ URL วิธีการ POST จะส่งรายการเป็น stdin วิธีที่สองดูเหมือนจะมีข้อดี:


  • เป็นไปได้ที่จะส่งข้อมูลเพิ่มเติม (URL มีขีด จำกัด ขนาด)

  • ข้อมูลจะไม่ถูกบันทึกในไฟล์บันทึก ตัวอย่างเช่น: การส่งรหัสผ่านเป็นส่วนหนึ่งของ URL จะทิ้งร่องรอยบนระบบต่างๆที่ข้อมูลกำลังส่งผ่าน!

  • ข้อมูลไม่ปรากฏในช่องที่อยู่ของเบราว์เซอร์ อีกครั้งการแสดงรหัสผ่านในเบราว์เซอร์อาจไม่ตรงกับความต้องการของผู้ใช้

 

ฉันจะรู้ได้อย่างไรว่ากำลังใช้วิธีใด?

 

เว็บเซิร์ฟเวอร์ก่อนโหลดโปรแกรม CGI เริ่มต้นตัวแปรบริบทบางอย่าง คุณสามารถวิเคราะห์ตัวแปรเหล่านี้เพื่อทราบปริมาณและแหล่งที่มาของข้อมูลอินพุต

หนึ่งในตัวแปรบริบทคือ REQUEST_METHOD ค่าของมันสามารถเป็น POST, GET และในที่สุด HEAD

 

หาก REQUEST_METHOD ระบุ POST ตัวแปร CONTENT_LENGTH จะระบุจำนวนไบต์ของข้อมูลที่ควรอ่านผ่าน stdin และตัวแปร CONTENT_TYPE จะระบุว่าข้อมูลมาจากรูปแบบ (หรืออาจมาจากแหล่งอื่น)

 

เมื่อได้รับข้อมูลแล้ว (อ่านโดยเซิร์ฟเวอร์) สามารถประมวลผลได้ทันทีและสามารถส่งการตอบสนอง (เอาต์พุต) ผ่านทาง stdout คำตอบมักจะเขียนในรูปแบบของข้อมูล HTML โดยมีการจัดรูปแบบที่จำเป็นทั้งหมด แต่โปรแกรม CGI สามารถสร้างการตอบสนองประเภทใดก็ได้เช่นไฟล์ GIF หรือสิ่งอื่นใด

 

นี่คือเหตุผลที่คุณต้องระบุไปยังเบราว์เซอร์ใน 2 ขั้นตอนแรกของการส่งข้อมูลประเภทของข้อมูลที่จะส่ง เราสามารถระบุข้อมูล HTML ได้โดยการส่งสตริงประเภทเนื้อหา: text / Html (งาน 1) ตามด้วยสตริงว่าง (งาน 2) การใช้ภาษา C จะเป็น printf ("Content-type: text / Html \ n \ n"); โดยที่ \ n คือตัวแบ่งบรรทัดและบรรทัดที่สอง \ n ตัวแบ่งบรรทัดอื่นเพื่อระบุบรรทัดว่าง