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

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

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

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

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

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

ประเภทดิสก์

แกน CPU

จัดเรียง

คะแนน - 7
Host Papa Canada Logo
Host Papa Canada

โฮสต์ Papa Canada

Business
$2.91 /รายเดือน


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


Host Papa Canada Servers in Canadaแคนาดา Host Papa Canada Servers in United Statesสหรัฐ
เปรียบเทียบ
คะแนน - 7
Host Papa Canada Logo
Host Papa Canada

โฮสต์ Papa Canada

Starter
$2.91 /รายเดือน


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


Host Papa Canada Servers in Canadaแคนาดา Host Papa Canada Servers in United Statesสหรัฐ
เปรียบเทียบ
คะแนน - 6.7
QHoster Logo
QHoster

QHoster

Mini
$2.54 /รายเดือน


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


QHoster Servers in Chicagoสหรัฐ QHoster Servers in Roubaixฝรั่งเศส QHoster Servers in Rotterdamเนเธอร์แลนด์ QHoster Servers in Frankfurt am Mainเยอรมนี QHoster Servers in Stockholmสวีเดน QHoster Servers in Canadaแคนาดา QHoster Servers in Coventryประเทศอังกฤษ QHoster Servers in Moscowสหพันธรัฐรัสเซีย QHoster Servers in Zurichสวิตเซอร์แลนด์ QHoster Servers in Siauliaiลิทัวเนีย QHoster Servers in Milanoอิตาลี QHoster Servers in Sofiaบัลแกเรีย QHoster Servers in Mexicoเม็กซิโก QHoster Servers in Singaporeสิงคโปร์
เปรียบเทียบ
คะแนน - 5.5
Host Dare Logo
Host Dare

เจ้าภาพกล้า

Starter
$1.99 /รายเดือน


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


Host Dare Servers in United Statesสหรัฐ
เปรียบเทียบ
คะแนน - 5.3
Hosting Farms Logo
Hosting Farms

โฮสติ้งฟาร์ม

Just Beginner
$25 /รายเดือน

เปรียบเทียบ
คะแนน - 4.1
Solid Hosting Logo
Solid Hosting

Solid Hosting

Shared plan
$4.99 /รายเดือน

เปรียบเทียบ
คะแนน - 3.5
Host Papa Logo
Host Papa

โฮสต์ปาป้า

Business
$3.95 /รายเดือน

12 คูปอง

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


Host Papa Servers in Torontoแคนาดา Host Papa Servers in United Statesสหรัฐ
เปรียบเทียบ
คะแนน - 3.5
Host Papa Logo
Host Papa

โฮสต์ปาป้า

Starter
$3.95 /รายเดือน

12 คูปอง

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


Host Papa Servers in Torontoแคนาดา Host Papa Servers in United Statesสหรัฐ
เปรียบเทียบ
คะแนน - 3.3
Java Provider Logo
Java Provider

ผู้ให้บริการ Java

Private Tomcat
$9.99 /รายเดือน


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


Java Provider Servers in Germanyเยอรมนี
เปรียบเทียบ
คะแนน - 3.3
1Dollar-Webhosting Logo
1Dollar-Webhosting

1Dollar-Webhosting

Personal Plan
$0.5 /รายเดือน


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


1Dollar-Webhosting Servers in United Statesสหรัฐ
เปรียบเทียบ
คะแนน - 3.1
efree2net.com Logo
efree2net.com

efree2net.com

Windows Beginner Hosting
$1.58 /รายเดือน

เปรียบเทียบ
คะแนน - 3
PiVPS Logo
PiVPS

PiVPS

#1 Linux VPS
$4.99 /รายเดือน


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


PiVPS Servers in United Statesสหรัฐ
เปรียบเทียบ
คะแนน - 1
Krypt Technologies Logo
Krypt Technologies

Krypt Technologies

VPS-1K
$19 /รายเดือน

10 คูปอง

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


Krypt Technologies Servers in Bangkokประเทศไทย Krypt Technologies Servers in Los Angelesสหรัฐ Krypt Technologies Servers in Hong Kongฮ่องกง
เปรียบเทียบ
คะแนน - 0
Chemi Cloud Logo
Chemi Cloud

Chemi Cloud

Ionic
$2.95 /รายเดือน


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


Chemi Cloud Servers in Bangaloreอินเดีย Chemi Cloud Servers in New Yorkสหรัฐ Chemi Cloud Servers in Bucharestโรมาเนีย Chemi Cloud Servers in Londonประเทศอังกฤษ Chemi Cloud Servers in Amsterdamเนเธอร์แลนด์ Chemi Cloud Servers in Torontoแคนาดา Chemi Cloud Servers in Sydneyออสเตรเลีย
เปรียบเทียบ
คะแนน - 0
LGvps Logo
LGvps

LGvps

Starter Web
$1.99 /รายเดือน


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


LGvps Servers in Franconvilleฝรั่งเศส LGvps Servers in Brusselsเบลเยี่ยม LGvps Servers in Union Cityสหรัฐ LGvps Servers in Dessauเยอรมนี LGvps Servers in Calgaryแคนาดา LGvps Servers in Andoverประเทศอังกฤษ
เปรียบเทียบ
คะแนน - 0
PTwebSite Logo
PTwebSite

PTwebSite

PTwebSite - Alojamento ECO
$3.15 /รายเดือน

เปรียบเทียบ
คะแนน - 0
1-GB.NET Logo
1-GB.NET

1-GB.NET

1 GigaByte Network (1-GB.NET) Beginner Hosting Plan
$4.17 /รายเดือน


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


1-GB.NET Servers in Parisฝรั่งเศส 1-GB.NET Servers in Tokyoญี่ปุ่น 1-GB.NET Servers in Sydneyออสเตรเลีย 1-GB.NET Servers in Seoulเกาหลีใต้ 1-GB.NET Servers in Seattleสหรัฐ 1-GB.NET Servers in Sao Pauloบราซิล 1-GB.NET Servers in Osloนอร์เวย์ 1-GB.NET Servers in Milanoอิตาลี 1-GB.NET Servers in Londonประเทศอังกฤษ 1-GB.NET Servers in Torontoแคนาดา 1-GB.NET Servers in Frankfurt am Mainเยอรมนี 1-GB.NET Servers in Chennaiอินเดีย 1-GB.NET Servers in Amsterdamเนเธอร์แลนด์
เปรียบเทียบ
คะแนน - 0
Cloudmatika Logo
Cloudmatika

เมฆมาติกา

Lite
$3.45 /รายเดือน


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


Cloudmatika Servers in Jakartaอินโดนีเซีย
เปรียบเทียบ
คะแนน - 0
99Stack Logo
99Stack

99 กอง

Squirrel
$6 /รายเดือน


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


99Stack Servers in Miamiสหรัฐ 99Stack Servers in Zurichสวิตเซอร์แลนด์ 99Stack Servers in Melbourneออสเตรเลีย 99Stack Servers in Karlstadสวีเดน 99Stack Servers in Warsawโปแลนด์ 99Stack Servers in Frankfurt am Mainเยอรมนี 99Stack Servers in Torontoแคนาดา 99Stack Servers in Tokyoญี่ปุ่น 99Stack Servers in Parisฝรั่งเศส 99Stack Servers in Londonประเทศอังกฤษ 99Stack Servers in Amsterdamเนเธอร์แลนด์
เปรียบเทียบ
คะแนน - 0
99Stack Logo
99Stack

99 กอง

Bee
$6 /รายเดือน


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


99Stack Servers in Miamiสหรัฐ 99Stack Servers in Zurichสวิตเซอร์แลนด์ 99Stack Servers in Melbourneออสเตรเลีย 99Stack Servers in Karlstadสวีเดน 99Stack Servers in Warsawโปแลนด์ 99Stack Servers in Frankfurt am Mainเยอรมนี 99Stack Servers in Torontoแคนาดา 99Stack Servers in Tokyoญี่ปุ่น 99Stack Servers in Parisฝรั่งเศส 99Stack Servers in Londonประเทศอังกฤษ 99Stack Servers in Amsterdamเนเธอร์แลนด์
เปรียบเทียบ
คะแนน - 0
Hugoton Hosting Logo
Hugoton Hosting

โฮสติ้ง Hugoton

Simple Hosting
$1.28 /รายเดือน


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


Hugoton Hosting Servers in Dublinไอร์แลนด์ Hugoton Hosting Servers in Virginia Beachสหรัฐ Hugoton Hosting Servers in Frankfurt am Mainเยอรมนี
เปรียบเทียบ

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 ตัวแบ่งบรรทัดอื่นเพื่อระบุบรรทัดว่าง