รีวิว 206
ตำแหน่งเซิร์ฟเวอร์
ตำแหน่งเซิร์ฟเวอร์
ตำแหน่งเซิร์ฟเวอร์
รีวิว 1235
ตำแหน่งเซิร์ฟเวอร์
รีวิว 82
ตำแหน่งเซิร์ฟเวอร์
รีวิว 72
ตำแหน่งเซิร์ฟเวอร์
รีวิว 157
ตำแหน่งเซิร์ฟเวอร์
รีวิว 21
ตำแหน่งเซิร์ฟเวอร์
รีวิว 32
ตำแหน่งเซิร์ฟเวอร์
รีวิว 5
ตำแหน่งเซิร์ฟเวอร์
รีวิว 5
ตำแหน่งเซิร์ฟเวอร์
รีวิว 3
ตำแหน่งเซิร์ฟเวอร์
รีวิว 4
ตำแหน่งเซิร์ฟเวอร์
รีวิว 136
ตำแหน่งเซิร์ฟเวอร์
รีวิว 2
ตำแหน่งเซิร์ฟเวอร์
รีวิว 2
ตำแหน่งเซิร์ฟเวอร์
รีวิว 2
รีวิว 2
ตำแหน่งเซิร์ฟเวอร์
รีวิว 1
ตำแหน่งเซิร์ฟเวอร์
รีวิว 1
ตำแหน่งเซิร์ฟเวอร์
Perl เป็นภาษาที่ตีความหมายและย่อมาจาก Practical Extraction and Report Language (ภาษาสำหรับการดึงข้อมูลและการรายงานในทางปฏิบัติ)
ตัวอย่างเช่นด้วย Perl คุณสามารถสร้างสคริปต์ที่เปิดไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไปประมวลผลข้อมูลและเขียนผลลัพธ์
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 ตัวแบ่งบรรทัดอื่นเพื่อระบุบรรทัดว่าง