Perl

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

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

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

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

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

ประเภทดิสก์

แกน CPU

จัดเรียง

Trust Pilot Name Hero
คะแนน - 9.4
Name Hero Logo
Name Hero

ชื่อฮีโร่

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

รีวิว 206


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


Name Hero Servers in Phoenixสหรัฐ Name Hero Servers in Amsterdamเนเธอร์แลนด์
เปรียบเทียบ
คะแนน - 8.4
Agility Hoster Logo
Agility Hoster

Agility Hoster

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


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


Agility Hoster Servers in Germanyเยอรมนี
เปรียบเทียบ
คะแนน - 7.4
Just Host Logo
Just Host

เพียงแค่โฮสต์

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

45 คูปอง

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


Just Host Servers in Provoสหรัฐ
เปรียบเทียบ
คะแนน - 9
A2hosting Logo
A2hosting

A2hosting

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

50 คูปอง

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


A2hosting Servers in Amsterdamเนเธอร์แลนด์ A2hosting Servers in Michiganสหรัฐ A2hosting Servers in Singaporeสิงคโปร์
เปรียบเทียบ
Trust Pilot Mocha Host
คะแนน - 9
Mocha Host Logo
Mocha Host

มอคค่าโฮสต์

Soho
$1.96 /รายเดือน

รีวิว 1235

39 คูปอง

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


Mocha Host Servers in Netherlandsเนเธอร์แลนด์ Mocha Host Servers in Chicagoสหรัฐ Mocha Host Servers in Australiaออสเตรเลีย Mocha Host Servers in Canadaแคนาดา Mocha Host Servers in Chinaประเทศจีน Mocha Host Servers in United Kingdomประเทศอังกฤษ
เปรียบเทียบ
Trust Pilot Pressable
คะแนน - 9.6
Pressable Logo
Pressable

กดได้

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

รีวิว 82


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


Pressable Servers in Phoenixสหรัฐ Pressable Servers in Amsterdamเนเธอร์แลนด์
เปรียบเทียบ
Trust Pilot JustHostMe
คะแนน - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

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

รีวิว 72


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


JustHostMe Servers in United Kingdomประเทศอังกฤษ
เปรียบเทียบ
Trust Pilot Orange Website
คะแนน - 9.2
Orange Website Logo
Orange Website

เว็บไซต์สีส้ม

Bronze Plan
$3.82 /รายเดือน

รีวิว 157


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


Orange Website Servers in Reykjavikไอซ์แลนด์
เปรียบเทียบ
Trust Pilot Smug Host
คะแนน - 9.2
Smug Host Logo
Smug Host

โฮสต์ Smug

Silver Package
$1.94 /รายเดือน

รีวิว 21


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


Smug Host Servers in Londonประเทศอังกฤษ
เปรียบเทียบ
Trust Pilot Cloudwings
คะแนน - 9
Cloudwings Logo
Cloudwings

Cloudwings

Starter Plan
$0.99 /รายเดือน

รีวิว 32


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


Cloudwings Servers in Munichเยอรมนี
เปรียบเทียบ
Trust Pilot Base Zap
คะแนน - 8.2
Base Zap Logo
Base Zap

เบสแซ่บ

Basic plan
$2.49 /รายเดือน

รีวิว 5


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


Base Zap Servers in Chicagoสหรัฐ Base Zap Servers in Quebecแคนาดา Base Zap Servers in Franconvilleฝรั่งเศส
เปรียบเทียบ
Trust Pilot Host Dns.fr
คะแนน - 8.2
Host Dns.fr Logo
Host Dns.fr

โฮสต์ Dns.fr

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

รีวิว 5


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


Host Dns.fr Servers in Chicagoสหรัฐ Host Dns.fr Servers in Sydneyออสเตรเลีย Host Dns.fr Servers in Franceฝรั่งเศส
เปรียบเทียบ
Trust Pilot StackFlare
คะแนน - 8
StackFlare Logo
StackFlare

StackFlare

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

รีวิว 4


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


StackFlare Servers in Mumbaiอินเดีย
เปรียบเทียบ
Trust Pilot DDoS-guard.net
คะแนน - 8
DDoS-guard.net Logo
DDoS-guard.net

DDoS-guard.net

BASIC
$25 /รายเดือน

รีวิว 3


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


DDoS-guard.net Servers in Moscowสหพันธรัฐรัสเซีย DDoS-guard.net Servers in Amsterdamเนเธอร์แลนด์ DDoS-guard.net Servers in United Kingdomประเทศอังกฤษ
เปรียบเทียบ
Trust Pilot Alls-Heberg
คะแนน - 7.8
Alls-Heberg Logo
Alls-Heberg

Alls-Heberg

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

รีวิว 136


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


Alls-Heberg Servers in Nanterreฝรั่งเศส
เปรียบเทียบ
Trust Pilot Domainregister
คะแนน - 7.6
Domainregister Logo
Domainregister

การลงทะเบียนโดเมน

Starter
$30.36 /ทุกปี

รีวิว 2


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


Domainregister Servers in Italyอิตาลี
เปรียบเทียบ
Trust Pilot L3Web Hosting
คะแนน - 7.6
L3Web Hosting Logo
L3Web Hosting

L3Web โฮสติ้ง

START UP
$1.99 /รายเดือน

รีวิว 2


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


L3Web Hosting Servers in Indiaอินเดีย L3Web Hosting Servers in Munichเยอรมนี L3Web Hosting Servers in Miamiสหรัฐ L3Web Hosting Servers in Singaporeสิงคโปร์ L3Web Hosting Servers in United Kingdomประเทศอังกฤษ
เปรียบเทียบ
Trust Pilot Tservers4
คะแนน - 7.6
Tservers4 Logo
Tservers4

Tservers 4

Beginner Hosting Plan
$6.5 /ทุกปี

รีวิว 2


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


Tservers4 Servers in Dallasสหรัฐ Tservers4 Servers in Parisฝรั่งเศส Tservers4 Servers in Amsterdamเนเธอร์แลนด์ Tservers4 Servers in Vancouverแคนาดา Tservers4 Servers in Nigeriaไนจีเรีย
เปรียบเทียบ
Trust Pilot qbic.co.uk
คะแนน - 7.6
qbic.co.uk Logo
qbic.co.uk

qbic.co.uk

Qbic Internet Solutions Starter Plan
$2.48 /รายเดือน

รีวิว 2

เปรียบเทียบ
Trust Pilot Xet Host
คะแนน - 7.4
Xet Host Logo
Xet Host

โฮสต์ Xet

Cole
$3.59 /รายเดือน

รีวิว 1


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


Xet Host Servers in Budapestฮังการี
เปรียบเทียบ
Trust Pilot Final Tek
คะแนน - 7.4
Final Tek Logo
Final Tek

Tek สุดท้าย

Single Hosting
$0.8 /รายเดือน

รีวิว 1


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


Final Tek Servers in Pragueสาธารณรัฐเช็ก Final Tek Servers in Germanyเยอรมนี Final Tek Servers in Switzerlandสวิตเซอร์แลนด์
เปรียบเทียบ

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