การเขียนโปรแกรมเว็บเซิร์ฟเวอร์ การเลือกวิธีการแก้ไขปัญหา ฉันอยากเป็นนักพัฒนาแบบฟูลสแตก

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

ด้วยภาษาเฉพาะ มันง่ายกว่าในเรื่องนี้ - โดยปกติความรู้พื้นฐานจะเพียงพอสำหรับการประเมินแล้ว ดังนั้นคุณจึงสามารถเปลี่ยนทิศทางของกิจกรรมได้อย่างรวดเร็วและไม่เสียเวลามากนัก อย่างไรก็ตาม มันเป็นตัวเลือกของภาษาที่ทำให้จิตใจของคนรุ่นเยาว์ตกอยู่ในอาการมึนงง ท้ายที่สุดแล้ว ยังมีภาษาเหล่านี้มากกว่าการเขียนโปรแกรมทั่วๆ ไป แต่พวกเขาจำเป็นต้องดำเนินการบางอย่าง

ใจเย็นๆ ตอนนี้จิตใจส่วนรวมจะตัดสินใจเลือกให้คุณ

ในส่วนแรกเราจะพูดถึงภาษาเว็บ คุณจำเป็นต้องรู้เลย์เอาต์ prelingual ใด และลำดับการเรียนรู้คืออะไร เพิ่มเติมเกี่ยวกับเรื่องนี้ในภายหลัง

แนวหน้า ด้านหลัง และตัวเลือกที่ไม่ชัดเจน

ตัวเลือกแรกที่ต้องทำคือพื้นที่รับผิดชอบ

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

นักพัฒนาแบ็กเอนด์
ผู้รับผิดชอบด้านฟังก์ชันการทำงานและการประมวลผลข้อมูลที่ซ่อนอยู่ หน้าที่ของพวกเขาคือเขียนโค้ดเซิร์ฟเวอร์

ผู้เชี่ยวชาญเต็มกอง
สิ่งเหล่านี้เป็นที่ต้องการมากที่สุดเพียงเพราะพวกเขาสามารถเติมเต็มความปรารถนาทั้งหมดของลูกค้าได้เพียงลำพัง

แน่นอนว่าวิธีที่ง่ายที่สุดคือมอบหมายหน้าที่ให้ตัวเองค้นหาทุกสิ่ง แต่สิ่งนี้จะกระจายความสนใจของคุณในระยะแรกเท่านั้น และในระยะต่อมา คุณจะตระหนักถึงความจำเป็นในการศึกษากระบวนการทั้งหมดอย่างผิวเผินเป็นอย่างน้อย ดังนั้นเรามาเริ่มกันที่ส่วนหน้ากันดีกว่า

หน้าจะขายแล้ว

สิ่งที่สำคัญที่สุดที่ผู้ที่ต้องการเป็นนักพัฒนาส่วนหน้าไม่ควรทำคือมองหารายการข้อกำหนดขั้นต่ำสำหรับผู้เชี่ยวชาญ ในกรณีนี้ มีความเสี่ยงสูงที่จะสะดุดกับบทความเช่นบทความ “นักพัฒนาส่วนหน้าจะต้องอยู่เหนือทุกสิ่ง” ทุกสิ่งที่เขียนไว้นั้นเป็นความจริงที่แท้จริง แต่คุณต้องมาถึงจุดนี้โดยเริ่มจากสิ่งเล็กๆ น้อยๆ และสิ่งเล็กๆ นั้นเป็นเสาหลัก 3 ประการของส่วนหน้า: HTML, CSS และ JavaScript สามารถขอรับพื้นฐานการอบรมเพิ่มเติมได้ที่

เมื่อไม่กี่ปีที่ผ่านมา หลังจากที่ได้ศึกษา HTML และ CSS ในรูปแบบของ smart book หลายเล่ม และ JS ในระดับ jQuery แล้ว เราอาจมีความปรารถนาที่จะได้ตำแหน่งผู้เยาว์อย่างจริงจัง อย่างไรก็ตาม ยุคปัจจุบันมีการเปลี่ยนแปลงและความต้องการก็เพิ่มขึ้นอย่างมาก อย่างไรก็ตาม ความรู้เกี่ยวกับ HTML และ CSS ยังสามารถสรุปได้ในหนังสือดีๆ สองสามเล่ม:

  • "การเรียนรู้ HTML5" บรูซ ลอว์สัน, เรมี ชาร์ป
  • "ซีเอสเอส สูตรการเขียนโปรแกรม » คริสโตเฟอร์ ชมิตต์

คุณจะต้องใช้เวลามากกับ JavaScript ศึกษาทฤษฎีเช่นจากหนังสือ "JavaScript: Strengths" ในที่นี้ไม่เพียงพอ การฝึกมือและสมองในทางปฏิบัติต้องใช้เวลาหลายเดือนรวมถึงการใช้ jQuery ดังกล่าวด้วย

นอกเหนือจากความรู้ทางทฤษฎีและการปฏิบัติแล้ว ผู้เชี่ยวชาญส่วนหน้าจะต้องมีความรู้ที่ดีมากเกี่ยวกับแนวโน้มอินเทอร์เน็ตล่าสุด และสามารถนำไปใช้อย่างมืออาชีพได้ ท้ายที่สุดนี่คือขอบเขตความรับผิดชอบที่ลูกค้าส่วนใหญ่จะประเมินโครงการทั้งหมด ณ เวลาที่ส่งมอบ

ประมวลผล ขันสกรู และสร้าง

ภาษาพื้นฐานสำหรับนักพัฒนาแบ็คเอนด์คือ PHP นี่เป็นพื้นฐานบางอย่างซึ่งไม่จำเป็นเลยที่จะต้องรู้ให้ครบถ้วนตลอดจนทำให้เป็นเครื่องมือหลัก แต่คุณต้องเข้าใจในระดับพื้นฐาน ในการทำเช่นนี้ อย่างน้อยคุณควรศึกษาหนังสือ “PHP: The Right Way” อย่างรอบคอบ

สำหรับภาษาปัจจุบัน คุณมักจะต้องเลือกจาก Ruby และ Python และตัวเลือกนี้ขึ้นอยู่กับรสนิยมเท่านั้น แม้แต่ที่นี่ ข้อพิพาทก็ไม่ได้ปะทุขึ้นเป็นระยะ ๆ แต่ถึงแม้จะเป็นข้อพิพาทเรื่องความสะดวกในการศึกษา ก็เป็นไปไม่ได้ที่จะหาผู้ชนะที่ชัดเจน สำหรับ Python การอ่านหนังสือที่มีชื่อง่ายๆว่า "Learning Python" จะมีประโยชน์สำหรับ Ruby - "Rails 4. การพัฒนาเว็บแอปพลิเคชันแบบ Agile"

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

และแน่นอนว่าคุณจะต้องมีความรู้ในด้านฐานข้อมูล อย่างน้อยที่สุดก็หมายถึงการเรียนรู้ SQL และประสบการณ์การทำงานกับฐานข้อมูลยอดนิยมอย่างสูงสุด

หนึ่งเดียวสำหรับทุกคน

ความจริงของอาชีพนักพัฒนาเว็บไซต์ก็คือไม่มีผู้เชี่ยวชาญที่เรียกว่า "ทรงกลม" ที่นี่และลูกค้าทั่วไปไม่เข้าใจแผนกเหล่านี้เสมอไปดังนั้นในรูปแบบใดรูปแบบหนึ่งคุณจะต้องมาถึงเต็มสแต็คอย่างรวดเร็ว . ดังนั้น ให้อ่าน 2 ส่วนก่อนหน้านี้อีกครั้ง เยี่ยมชมอีกครั้งและเริ่มแทะหินแกรนิตของวิทยาศาสตร์ซอฟต์แวร์

ความรู้ไม่เกี่ยวกับภาษา

นอกจากภาษาแล้วยังจำเป็นต้องศึกษาส่วนเสริมพิเศษทั้งหมดที่มาพร้อมกับภาษาเหล่านั้นด้วย นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งสำหรับ JavaScript (AngularJS, Knockout, Backbone) และ CSS (Bootstrap, Foundation) นอกจากนี้ คุณต้องทำความคุ้นเคยกับระบบควบคุมเวอร์ชัน Git และ SVN

เพื่อให้บรรลุความสำเร็จอันยิ่งใหญ่ในการพัฒนาเว็บไซต์ จงอดทน ก้าวไปสู่เป้าหมายทีละขั้น โดยเลือกเส้นทางที่ดูน่าสนใจที่สุดสำหรับคุณ และไม่สำคัญเลยว่าจะแตกต่างจากที่อธิบายไว้ข้างต้นหรือในบทความอื่นหรือไม่ รักในสิ่งที่คุณทำ อุทิศเวลาให้กับมัน ทุ่มเทจิตวิญญาณให้กับมัน และความสำเร็จจะไม่ทำให้คุณต้องรออีกต่อไป

อะไร การเขียนโปรแกรมเซิร์ฟเวอร์อื่น ๆ คืออะไร? นี่เป็นปัญหาประเภทไหน? และทำไมเราถึงต้องการมัน?

ดูเหมือนว่าเราได้เรียนรู้วิธีสร้างเว็บเพจในสภาพแวดล้อม Dreamweaver แล้ว เรายังเรียนรู้วิธีสร้างเว็บไซต์ทั้งหมดโดยใช้มันและเผยแพร่บนเว็บเซิร์ฟเวอร์ เราศึกษาการออกแบบเพจสองประเภท: แบบเฟรม เมื่อไซต์ถูกสร้างขึ้นตามชุดของเฟรม และแบบตาราง เมื่อเนื้อหาของหน้าถูกวางในตารางขนาดใหญ่และซับซ้อน เราได้เรียนรู้เกี่ยวกับสไตล์ชีท เมตาแท็ก และคำสั่งฝั่งเซิร์ฟเวอร์ และสุดท้าย เราได้เรียนรู้เกี่ยวกับการเขียนโปรแกรมเว็บและสคริปต์เว็บที่ช่วยให้เราสามารถเพิ่ม “ชีวิต” ให้กับเพจคงที่ของเรา มีอะไรอีกที่จำเป็นสำหรับความสุข?

ใช่ สิ่งที่เราเรียนรู้ก่อนหน้านี้เพียงพอสำหรับเราในการสร้างเว็บไซต์ที่ดีทีเดียว นักออกแบบเว็บไซต์จำนวนมากหยุดอยู่แค่นั้น แต่เราต้องการมากกว่านี้ใช่ไหม?

ทำตามขั้นตอนต่อไป - ย้ายจากเพจที่เก็บไว้ในไฟล์บนเซิร์ฟเวอร์ไปยังเพจที่สร้างโดยโปรแกรมพิเศษ เป็นการเขียนโปรแกรมที่เกี่ยวข้องกับการเขียนโปรแกรมเซิร์ฟเวอร์อย่างแม่นยำ

แต่มาทำสิ่งต่าง ๆ ตามลำดับ และเราจะเริ่มต้นด้วยการค้นหาว่าเหตุใดโปรแกรมเซิร์ฟเวอร์เหล่านี้จึงมีความจำเป็น

การเขียนโปรแกรมเซิร์ฟเวอร์คืออะไร

จริงๆแล้วมันคืออะไรและกินกับอะไร?

ทำไมเราต้องมีโปรแกรมเซิร์ฟเวอร์?

คุณเคยเยี่ยมชมร้านค้าออนไลน์หรือไม่? ยกตัวอย่าง “โอโซน” ที่ได้รับความนิยมมากที่สุด (http://www.ozon.ru)คุณจำวิธีสั่งซื้อสินค้าที่นั่นได้ไหม?

หากคุณจำไม่ได้หรือไม่รู้ด้วยซ้ำว่าร้านค้าออนไลน์คืออะไร มาจำไว้ (หรือค้นหาคำตอบ)

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

จะเกิดอะไรขึ้นเมื่อสิ่งนี้เกิดขึ้น? ข้อมูลที่คุณป้อนได้รับการประมวลผลอย่างไร? มันเป็นเว็บเบราว์เซอร์จริงๆเหรอ?

ไม่เลย. ข้อมูลนี้ได้รับการประมวลผลบนเว็บเซิร์ฟเวอร์

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

สิ่งนี้เกิดขึ้นจริงได้อย่างไร? ตอนนี้เราจะค้นพบ และก่อนอื่นเรามาตอบคำถาม...

เช่นเดียวกับเว็บเซิร์ฟเวอร์ ประมวลผลข้อมูลผู้ใช้

แล้วโปรแกรมเว็บเซิร์ฟเวอร์จะประมวลผลข้อมูลที่ผู้ใช้ส่งมาอย่างไร?

ไม่มีทาง.

เว็บเซิร์ฟเวอร์ไม่พร้อมที่จะประมวลผล หน้าที่ของมันคือรับคำขอไฟล์จากเว็บเบราว์เซอร์ (หน้าเว็บ สไตล์ชีท รูปภาพกราฟิก ภาพยนตร์ เสียง ไฟล์เก็บถาวร ไฟล์ปฏิบัติการ ฯลฯ) ค้นหาไฟล์เดียวกันเหล่านี้บนฮาร์ดไดรฟ์ของคอมพิวเตอร์เซิร์ฟเวอร์ และ ส่งไฟล์ที่พบกลับไปยังเว็บเบราว์เซอร์ นี่คืองานหลักของเขา แน่นอนว่าเซิร์ฟเวอร์ที่มีประสิทธิภาพเป็นพิเศษบางตัวสามารถดำเนินการเพิ่มเติมกับไฟล์ที่ถูกส่งก่อนที่จะส่งจริง (โดยเฉพาะการดำเนินการคำสั่งเซิร์ฟเวอร์) นอกจากนี้ยังมีโปรแกรม "หลายโฮสต์" ที่ทำหน้าที่ไม่เพียงแต่เว็บเซิร์ฟเวอร์เท่านั้น แต่ยังรวมถึงเซิร์ฟเวอร์ FTP, เมล, ข่าว UseNet และพระเจ้าทรงทราบอะไรอีกบ้าง แต่หน้าที่หลัก: การออกไฟล์อย่างง่าย ๆ ตามความต้องการของลูกค้า - และไม่มีอะไรเพิ่มเติมไม่มีอินเทอร์เฟซผู้ใช้และ "สื่อสาร" กับเว็บเซิร์ฟเวอร์เท่านั้น รับข้อมูลที่ผู้ใช้ป้อนจากนั้นส่งคืนผลลัพธ์ให้เขา นี่คือความแตกต่างโดยพื้นฐานจากโปรแกรมไคลเอนต์ที่ทำงานโดยตรงกับผู้ใช้

(โปรแกรมไคลเอนต์รวมถึงแต่ไม่จำกัดเพียงเว็บเบราว์เซอร์ที่คุณชื่นชอบ)

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

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

  1. โปรแกรมเซิร์ฟเวอร์แบ่งออกเป็น 4 ประเภทดังต่อไปนี้ โปรแกรมปฏิบัติการที่ทำงานผ่านอินเทอร์เฟซซีจีไอ (Common Gateway Interface - อินเตอร์เฟสการแลกเปลี่ยนทั่วไป) ที่เรียกว่าโปรแกรมซีจีไอ
  2. ซอฟต์แวร์เซิร์ฟเวอร์ประเภทนี้เป็นซอฟต์แวร์ที่เก่าแก่ที่สุด แต่ก็ไม่ได้ล้าสมัยแต่อย่างใดส่วนขยายของเว็บเซิร์ฟเวอร์
  3. (แอปพลิเคชันรูปแบบ ISAPI, NSAPI, โมดูลส่วนขยาย Apache ฯลฯ ) วิธีการใหม่ที่ช่วยให้คุณสามารถฝังโปรแกรมเซิร์ฟเวอร์ลงในเว็บเซิร์ฟเวอร์ได้ ทำให้เป็นส่วนสำคัญของโปรแกรม ได้รับการเสนอครั้งแรกโดย Microsoft สำหรับ Microsoft Internet Information Server (อินเทอร์เฟซ ISAPI) และโดยผู้พัฒนาเว็บเซิร์ฟเวอร์ Apache ฟรียอดนิยมหน้าเซิร์ฟเวอร์ที่ใช้งานอยู่
  4. (ASP, JSP ฯลฯ) อันที่จริงสิ่งเหล่านี้เป็นเว็บเพจแบบสแตติกธรรมดาที่บันทึกไว้ในไฟล์ ซึ่งนอกเหนือจากโค้ด HTML ปกติแล้ว ยังรวมคำสั่งที่ประมวลผลโดยเว็บเซิร์ฟเวอร์เองหรือส่วนขยายด้วย ยังเป็นวิธีการใหม่ที่เสนอครั้งแรกโดย Microsoft สำหรับเซิร์ฟเวอร์ข้อมูลทางอินเทอร์เน็ตเดียวกันสคริปต์เซิร์ฟเวอร์

เขียนด้วยภาษาที่ตีความ (Perl, Python, VBScript, JavaScript ฯลฯ ) สคริปต์ทั่วไปที่ทำงานผ่านอินเทอร์เฟซ CGI หรือ ISAPI บนฝั่งเซิร์ฟเวอร์

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

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

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

ส่วนขยายเว็บเซิร์ฟเวอร์เป็นซอฟต์แวร์เซิร์ฟเวอร์ประเภทใหม่ เป็น DLL ธรรมดาที่ใช้ตรรกะทั้งหมดของโปรแกรมเซิร์ฟเวอร์ ไลบรารีดังกล่าวถูกสร้างขึ้นในโปรแกรมเว็บเซิร์ฟเวอร์และทำงานเป็นส่วนสำคัญของไลบรารีดังกล่าว เนื่องจาก DLL ทำงานในสภาพแวดล้อม Windows เท่านั้น จึงได้มีการคิดค้นรูปแบบอื่นเพื่อสร้างส่วนขยายบนระบบปฏิบัติการอื่น โดยเฉพาะอย่างยิ่งโมดูลส่วนขยายเซิร์ฟเวอร์ Apache ไม่ใช่ DLLอยู่ในรูปแบบของ DLL ที่ส่วนขยายของเว็บเซิร์ฟเวอร์ Internet Information Server จาก Microsoft และ Netscape Web Server จาก Netscape ถูกสร้างขึ้น ในกรณีแรก ส่วนขยายจะมีรูปแบบ อิซาปิ(อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันเซิร์ฟเวอร์อินเทอร์เน็ต - อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันเซิร์ฟเวอร์อินเทอร์เน็ต) และในวินาที -

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

เช่นเดียวกับโปรแกรม CGI

เนื่องจากทำงานโดยเป็นส่วนหนึ่งของเว็บเซิร์ฟเวอร์ ข้อผิดพลาดใดๆ ในส่วนขยายจะทำให้เซิร์ฟเวอร์หยุดทำงาน

โปรแกรมเซิร์ฟเวอร์ทั้งสองประเภทที่อธิบายไว้ข้างต้นมีข้อเสียเปรียบอย่างมากประการหนึ่ง ก่อนที่จะสามารถทำงานได้ จะต้องเขียนด้วยภาษาโปรแกรมและคอมไพล์เป็นรหัสเครื่องบนโปรเซสเซอร์ ซึ่งใช้เวลานาน โดยเฉพาะอย่างยิ่งเมื่อทำการดีบัก แน่นอนว่าโปรแกรมที่คอมไพล์ทำงานได้เร็วกว่าโปรแกรมที่ถูกตีความ นั่นคือโปรแกรมที่แต่ละคำสั่งถูกอ่าน ถอดรหัส และประมวลผลโดยโปรแกรมล่ามพิเศษ แต่โปรแกรมแบบตีความก็มีข้อดีเช่นกัน โดยหลักๆ คือความเรียบง่ายและความเร็วในการเขียน โปรแกรมเซิร์ฟเวอร์สองประเภทถัดไปที่จะอธิบายจะถูกตีความดังที่ได้กล่าวไปแล้ว หน้าเซิร์ฟเวอร์ที่ใช้งานอยู่เป็นหน้าเว็บธรรมดาที่มีรายการพิเศษ สคริปต์เซิร์ฟเวอร์ดำเนินการโดยเว็บเซิร์ฟเวอร์เองหรือโปรแกรมเซิร์ฟเวอร์พิเศษ (แอปพลิเคชัน CGI หรือส่วนขยายของเว็บเซิร์ฟเวอร์) โดยเฉพาะอย่างยิ่ง งูเห่า.(หน้าเซิร์ฟเวอร์ที่ใช้งานอยู่) รองรับโดย Microsoft Internet Information Server และ

เจเอสพี

สคริปต์ฝั่งเซิร์ฟเวอร์นั้นคล้ายคลึงกับเพจเซิร์ฟเวอร์ที่ใช้งานอยู่ตรงที่ถูกตีความ แต่เป็นโค้ดโปรแกรม "บริสุทธิ์" โดยไม่มีส่วนเสริม HTML ล่ามมักจะเป็นโปรแกรม CGI แต่ไม่มีอะไรหยุดคุณไม่ให้พัฒนามันเป็นเว็บ ส่วนขยายเซิร์ฟเวอร์ . สคริปต์มักจะเขียนด้วยภาษาโปรแกรม Perl ซึ่งออกแบบมาโดยเฉพาะสำหรับการประมวลผลข้อความ Python, JavaScript, VBScript และแม้แต่ (ตามที่พวกเขาพูด) ก็ใช้ภาษาไฟล์คำสั่ง MS-DOS ได้เช่นกัน เขียนสคริปต์ในภาษาโปรแกรมใด ๆ ที่มีล่าม

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

ในตาราง 15.1 แสดงนามสกุลไฟล์ของโปรแกรมเซิร์ฟเวอร์

ตารางที่ 15.1. นามสกุลไฟล์โปรแกรมเซิร์ฟเวอร์

ประเภทของโปรแกรมเซิร์ฟเวอร์

ชนิดย่อย

ส่วนขยาย

โปรแกรมซีจีไอ

-

อดีต

ส่วนขยายของเว็บเซิร์ฟเวอร์

โมดูล ISAPI และ NSAPI Apache

dll ไม่มีส่วนขยาย

หน้าเซิร์ฟเวอร์ที่ใช้งานอยู่

สคริปต์เซิร์ฟเวอร์

เอเอสพี เจเอสพี

เอเอสพี เจเอสพี

ภาษา Perl JavaScript VBScript ภาษาอื่น ๆ

ได้โปรด, cgi js, cgi vbs, cgi cgi

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

เว็บเบราว์เซอร์ส่งข้อมูลที่ป้อนอย่างไร

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

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

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

ตัวอย่างเช่น:

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

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

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

กระบวนการส่งข้อมูลเริ่มต้นหลังจากที่ผู้ใช้กดปุ่มพิเศษ ปุ่มนี้เรียกว่าส่ง (ส่ง-เป็นโปรแกรมภาษาอังกฤษ) และต้องนำเสนอในรูปแบบ แบบฟอร์มอาจมีปุ่มด้วยรีเซ็ต

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

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

หนึ่งในสองวิธีในการส่งข้อมูล

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

http://www.

บางแห่ง ru/bin/program.exe นี่คือที่อยู่ของส่วนขยายเว็บเซิร์ฟเวอร์: http: //www.somesite.ru/bin/extension.dll นี่คือที่อยู่ของหน้าเซิร์ฟเวอร์ที่ใช้งานอยู่:

http://www.

บางแห่ง ru/asps/active_page.ru งูเห่า

และนี่คือที่อยู่ของโปรแกรมสคริปต์ที่เขียนด้วยภาษา Perl:

http://www.บางแห่ง ru/scripts/perl_script.pl

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

ในการเข้ารหัสข้อมูลที่ส่งผ่านอินเทอร์เน็ต โดยปกติจะใช้สามวิธีที่ได้รับความนิยมมากที่สุด: application/x-www-form-urlencoded,

multipart/form-data และ (บ่อยน้อยกว่ามาก) ข้อความ/ธรรมดา คุณสามารถใช้วิธีการเข้ารหัสอื่นๆ ได้ แต่ในกรณีส่วนใหญ่ ทั้งสามรายการจะถูกนำมาใช้ นอกจากนี้ วิธีการเข้ารหัสทั้งสามวิธีนี้ยังรองรับโดยโปรแกรมเว็บเบราว์เซอร์ส่วนใหญ่อีกด้วย

บันทึก

หากคุณยังคงจำได้ว่าประเภทข้อมูล MIME คืออะไร เมื่อดูชื่อวิธีการเข้ารหัสข้อมูลที่ให้ไว้ข้างต้น คุณจะเห็นทันทีว่าข้อมูลเหล่านี้เป็นเพียงประเภท MIME ด้วยความช่วยเหลือของพวกเขาในการระบุวิธีการเข้ารหัส

ในกรณีส่วนใหญ่ จะใช้วิธีการเข้ารหัส application/x-www-form-uriencoded อย่างไรก็ตาม มันเป็นวิธีที่ใช้เป็นค่าเริ่มต้นหากไม่ได้ระบุวิธีการเข้ารหัสโปรโตคอลจะกำหนดวิธีการเข้ารหัสข้อมูลและแพ็กเกจสำหรับการส่งข้อมูลผ่านเครือข่ายในภายหลัง โดยปกติทั้งโปรแกรมส่งและรับจะต้องรองรับโปรโตคอลเดียวกันเพื่อที่จะ "เข้าใจ" ซึ่งกันและกัน (มิฉะนั้นสิ่งที่เรียกว่าความไม่เข้ากันกับโปรโตคอลการถ่ายโอนข้อมูลจะเกิดขึ้นซึ่งเป็นสิ่งที่ไม่พึงประสงค์อย่างยิ่ง) จริงๆแล้วเราได้พูดคุยเกี่ยวกับโปรโตคอลอินเทอร์เน็ตแล้วและก็ไม่มีประโยชน์ที่จะพูดซ้ำตัวเองในตอนนี้

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

วิธีแรกเรียกว่า รับตามค่าของพารามิเตอร์แบบฟอร์มที่เกี่ยวข้อง เมื่อใช้ ข้อมูลจะถูกส่งเป็นส่วนหนึ่งของที่อยู่อินเทอร์เน็ตในคำขอ HTTP

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

ตัวอย่างเช่น ชุดข้อมูลที่แสดงด้านบน:

name1 = นามสกุลของ Ivan = Ivanovich name2 = Ivanov อายุ = 30

ตอนนี้เรามาเตรียมพร้อมสำหรับการส่งโดยใช้วิธี GET (ข้อมูลเป็นตัวหนา):

http://www.somesite.ru/bin/program.exe? name1=อีวาน&นามสกุล2=อิวาโนวิช&ชื่อ2=อีวานอฟ&อายุ=30

อย่างที่คุณเห็น ข้อมูลที่ส่งโดยใช้วิธี GET จะถูกวางไว้ที่ส่วนท้ายสุดของที่อยู่อินเทอร์เน็ต และถูกคั่นด้วยเครื่องหมายคำถาม ในกรณีนี้ คู่ "ชื่อ" = "ค่า" จะถูกแยกออกจากกันด้วยเครื่องหมาย "เชิงพาณิชย์และ" (“&”)

ทุกอย่างเรียบง่ายและชัดเจนมาก

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

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

น่าเสียดายที่วิธี GET มีข้อเสียอย่างมาก เนื่องจากไม่สามารถถ่ายโอนข้อมูลจำนวนมากได้ นี่เป็นเพราะข้อจำกัดที่กำหนดโดยมาตรฐานเกี่ยวกับความยาวของที่อยู่อินเทอร์เน็ต: ไม่เกิน 256 อักขระ ลบความยาวของที่อยู่จริงของโปรแกรมเซิร์ฟเวอร์ออกจากที่นี่ - แล้วคุณจะได้ขนาดข้อมูลสูงสุดที่อนุญาต ข้อเสียประการที่สองของวิธี GET คือข้อดีอีกด้านของมัน ข้อมูลที่ส่งจะปรากฏต่อสาธารณะและสามารถอ่านได้ง่ายในแถบที่อยู่ของเว็บเบราว์เซอร์

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

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

ข้อดีของวิธี POST: ไม่จำกัดปริมาณข้อมูลที่ถ่ายโอนและ "การมองไม่เห็น" ข้อเสีย: ความยากในการถอดรหัสข้อมูลและความยากในการดีบั๊ก วิธีการ POST ใช้ในการส่ง เช่น ข้อมูลส่วนบุคคล ที่อยู่ของลูกค้าในร้านค้าอิเล็กทรอนิกส์ งานวรรณกรรมเข้าถึงเว็บไซต์ http://www.stihi.ru และ http://www.proza.ru เป็นต้น โดยทั่วไปแล้วบางสิ่งที่มีปริมาณมาก

ตามที่กล่าวไว้ คณะกรรมการ WWWC ตั้งใจที่จะละทิ้งวิธี GET โดยสิ้นเชิง และถ่ายโอนข้อมูลทั้งหมดโดยใช้วิธี POST จนถึงขณะนี้ วิธีการ GET ได้รับการประกาศว่าไม่แนะนำให้ใช้ในไซต์ที่สร้างขึ้นใหม่ แต่ในความเป็นจริงแล้ว วิธีการดังกล่าวยังคงได้รับการสนับสนุนโดยเว็บเบราว์เซอร์

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

ตอนนี้เรามาพูดถึงว่า Dreamweaver MX รองรับทั้งหมดนี้ได้อย่างเต็มที่เพียงใด

การเขียนโปรแกรมฝั่งเซิร์ฟเวอร์ - แนวทาง Dreamweaver

การเขียนโปรแกรมเซิร์ฟเวอร์ยากไหม? ใช่ มันเป็นเรื่องยาก อาจจะยากกว่าเว็บเพจด้วยซ้ำ

อย่างไรก็ตาม จำได้ไหมว่าเราต้องเขียนโค้ด HTML ด้วยตนเองบ่อยแค่ไหน? ค่อนข้างหายากใช่ไหม?

และทั้งหมดเป็นเพราะ Dreamweaver ปกป้องเราอย่างระมัดระวังจากสิ่งนี้ด้วยการจัดเตรียมอินเทอร์เฟซที่สะดวกสบายสำหรับการสร้างเพจที่มองเห็นได้ เราเพียงแค่เขียนข้อความ จัดรูปแบบ วางรูปภาพ ตารางบนหน้า ปรับใช้พฤติกรรมกับองค์ประกอบของหน้า ฯลฯ พูดง่ายๆ ก็คือเรารู้สึกสบายใจ และตอนนี้เราจะต้องเขียนโปรแกรมเซิร์ฟเวอร์ด้วยตนเองจริงๆ เหรอ?! ไม่ ไม่จำเป็นเลยมีการกล่าวไปแล้วว่า Dreamweaver จัดเตรียมพฤติกรรมที่เรียกว่าสำหรับผู้ใช้ที่ไม่มีประสบการณ์และโดยทั่วไปสำหรับผู้ที่ไม่ต้องการจัดการกับโค้ด JavaScript พฤติกรรม- เป็นสคริปต์สำเร็จรูปเขียนโดยโปรแกรมเมอร์มืออาชีพและวางลงในโค้ดหน้าเว็บโดย Dreamweaver เองหลังจากที่ผู้ใช้เลือกพฤติกรรมนี้ในเมนูพฤติกรรมของแผงควบคุม

พฤติกรรม.

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

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

แน่นอนว่า หากคุณต้องการทำอะไรแปลกๆ คุณจะต้องเขียนหน้าเซิร์ฟเวอร์ด้วยตนเอง แต่คุณจะเห็นไหมว่าสิ่งนี้ไม่ได้เกิดขึ้นบ่อยนัก

  1. ดังนั้นเราจึงค้นพบสองสิ่ง ประการแรก Dreamweaver MX รองรับการสร้างเว็บเพจฝั่งเซิร์ฟเวอร์
  2. ประการที่สอง ใช้พฤติกรรมที่คุณคุ้นเคยเพื่อใส่สคริปต์ลงไป
  3. PHP. เทคโนโลยีฟรีเผยแพร่ด้วยข้อความโอเพ่นซอร์ส ค่อนข้างได้รับความนิยมและมักใช้กับเว็บเซิร์ฟเวอร์ฟรี เช่น Apache
  4. แมคโครมีเดีย โคลด์ฟิวชั่น

การพัฒนา Macromedia ของตัวเอง

คุณควรเลือกอันไหน? ท้ายที่สุดเราจะต้องสร้างตัวอย่างเว็บเพจขึ้นมา

เรามาเลือก ASP กันดีกว่า และนี่คือเหตุผล

เพื่อที่จะทำงานกับเพจฝั่งเซิร์ฟเวอร์ เราจำเป็นต้องมีเว็บเซิร์ฟเวอร์ หากไม่มีมัน หน้าเซิร์ฟเวอร์ก็จะใช้งานไม่ได้ และบางทีคุณอาจรู้ว่า Windows เวอร์ชันใหม่ไม่มากก็น้อยมาพร้อมกับเว็บเซิร์ฟเวอร์ขนาดเล็ก บนระบบ Windows 95/98/ME คือ Personal Web Server และบน Windows NT/2000/XP คือ Internet Information Server ความสามารถของมันเพียงพอสำหรับเราในการทดลองกับการเขียนโปรแกรมเซิร์ฟเวอร์

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

แทบจะไม่มีเว็บเซิร์ฟเวอร์ใดที่รองรับเทคโนโลยี ASP.NET ในปัจจุบัน; Microsoft ยังไม่ได้เปิดตัวผลิตภัณฑ์เดียวที่รองรับเทคโนโลยีนี้ ในการทำงานกับหน้า PHP คุณจะต้องค้นหาและดาวน์โหลดชุดการแจกจ่ายขนาดใหญ่ที่มีตัวจัดการ PHP บนอินเทอร์เน็ตจากนั้นใช้เวลาส่วนใหญ่ในการตั้งค่า สำหรับเทคโนโลยี ColdFusion คุณไม่น่าจะทุ่มเงินหลายพันดอลลาร์เพื่อซื้อมันได้ ดังนั้นเราจึงไม่มีทางเลือกเลย

ความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล

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

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

แต่ละตารางจะประกอบด้วยชุดแถวที่แบ่งออกเป็นเซลล์ และแต่ละเซลล์ประกอบด้วยข้อมูลบางประเภท: ข้อความ ตัวเลข ค่าตรรกะ วันที่ ฯลฯ แถวของตารางฐานข้อมูลเรียกว่า บันทึก,และเซลล์ที่แต่ละบันทึกจะถูกแบ่งออกไป สาขาดังที่ได้กล่าวไปแล้ว แต่ละฟิลด์มีประเภทเฉพาะและจำเป็นต้องติดตั้งด้วย ชื่อ,ซึ่งโปรแกรมที่ทำงานกับข้อมูลจะเข้าถึงฟิลด์นี้

ในรูป 15.1 แสดงตัวอย่างตารางดังกล่าว อย่างที่คุณเห็น ตารางนี้มีสามฟิลด์:

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

นอกจากนี้ ตารางนี้ยังมีสี่รายการที่เกี่ยวข้องกับเทคโนโลยีที่ Dreamweaver MX รองรับ: ASP, ASP.NET, PHP และ ColdFusion

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

ตัวอย่างตารางที่รวมอยู่ในฐานข้อมูล

คุณรู้วิธีเข้าถึงฟิลด์แยกต่างหากตามชื่อแล้ว ฉันจะเข้าถึงบันทึกที่จำเป็นได้อย่างไร?

ความจริงก็คือในครั้งเดียวโปรแกรมที่ใช้ข้อมูลฐานข้อมูลสามารถทำงานได้กับบันทึกเดียวเท่านั้นที่เรียกว่า ปัจจุบัน.สามารถดึงข้อมูลจากเขตข้อมูลในบันทึกนั้นและอาจแก้ไขได้ แต่ในการรับข้อมูลของบันทึกอื่น โปรแกรมจะต้องออกคำสั่งย้าย ในกรณีนี้ ตัวประมวลผลฐานข้อมูลจะย้ายรายการพิเศษ ตัวชี้บันทึกปัจจุบันไปยังบันทึกที่ต้องการและโปรแกรมก็สามารถทำงานได้

โปรแกรมก็สามารถใช้งานได้ ค้นหาบันทึกที่ต้องการตามเกณฑ์ใด ๆ บ่อยครั้งที่การค้นหาดังกล่าวดำเนินการโดยใช้ค่าของฟิลด์คีย์

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

โดยทั่วไป ลำดับการทำงานกับข้อมูลที่มีอยู่ในฐานข้อมูลจะมีลักษณะดังนี้:

  1. โปรแกรม เปิดฐานข้อมูลโดยดำเนินการเปิด นี่เป็นการดำเนินการที่จำเป็น โดยที่ไม่สามารถเข้าถึงฐานข้อมูลได้
  2. โปรแกรมจะเปิดตารางฐานข้อมูลที่ต้องการ หลังจากนั้นโปรเซสเซอร์จะส่งคืนสิ่งที่เรียกว่า ชุดระเบียน(ในภาษาอังกฤษ -- ชุดบันทึก) ซึ่งโปรแกรมทำงาน
  3. โปรแกรมทำงานกับข้อมูลจริง
  4. โปรแกรม ปิดตารางหลังจากนั้นโปรเซสเซอร์จะลบชุดบันทึกที่เกี่ยวข้องกับโปรแกรมนี้ออกจากหน่วยความจำ
  5. โปรแกรมจะปิดฐานข้อมูล ทำลายการเชื่อมต่อทั้งหมดด้วย

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

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

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

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

ขณะนี้เซิร์ฟเวอร์ฐานข้อมูลมีการใช้บ่อยมากและในการเขียนโปรแกรมเว็บ - เกือบทุกที่

ที่ได้รับความนิยมมากที่สุด ได้แก่ Oracle, Microsoft SQL Server, Sybase, IBM DB2 อันทรงพลัง, Borland InterBase (ในรัสเซียจำหน่ายภายใต้ชื่อ IBase), PostgressSQL ที่ได้รับความนิยมมากขึ้นเรื่อย ๆ และเซิร์ฟเวอร์ MySQL ฟรีที่เผยแพร่เป็นโอเพ่นซอร์ส เซิร์ฟเวอร์หลังมักใช้ร่วมกับเทคโนโลยีเว็บเซิร์ฟเวอร์ Apache และเทคโนโลยีเพจเซิร์ฟเวอร์ PHP

นี่เป็นการสรุปเรื่องราวเกี่ยวกับฐานข้อมูลและการเขียนโปรแกรมเซิร์ฟเวอร์

ได้มีการกล่าวแล้วว่าองค์ประกอบพิเศษของเว็บเพจ - แบบฟอร์ม - ส่งข้อมูลไปยังโปรแกรมเซิร์ฟเวอร์ เราจะพูดถึงแบบฟอร์มและการทำงานร่วมกับแบบฟอร์มใน Dreamweaver ในบทถัดไป จากนั้นเราจะไปยังการเขียนโปรแกรมเซิร์ฟเวอร์เอง

ฉันรู้สึกขอบคุณล่วงหน้าสำหรับความคิดเห็น การให้คะแนน และการแก้ไข (โดยคำนึงว่ากลุ่มเป้าหมายคือคนหลอกลวง)

หากผู้ใช้ทุกคนจำเป็นต้องแสดงสิ่งเดียวกันไม่ว่าในกรณีใด ๆ คุณสามารถวางไฟล์ที่เกี่ยวข้องบนเซิร์ฟเวอร์ได้ แต่โดยปกติแล้วจะไม่เพียงพอและคุณต้องการความหลากหลาย ในกรณีนี้ คุณต้องรันโปรแกรมบนเซิร์ฟเวอร์ที่จะสร้างข้อความ HTML ที่จำเป็นในกรณีนี้ โดยทั่วไปแล้วการเขียนโปรแกรม "เซิร์ฟเวอร์" (สคริปต์) เหล่านี้เป็นธุรกิจหลักของการพัฒนาเว็บ โดยส่วนใหญ่แล้ว 90% ของความซับซ้อนและต้นทุนของโครงการใด ๆ จะถูกซ่อนไว้ เนื่องจากโปรแกรมทำงานบนเซิร์ฟเวอร์ของเรา ไม่ใช่บนคอมพิวเตอร์ของผู้ใช้ ตัวเลือกเครื่องมือจึงเป็นของเราทั้งหมด และไม่มีภาษาเดียวที่ใช้เขียนโปรแกรมดังกล่าว

การตัดสินใจขั้นพื้นฐานประการที่สองคือภาษาการเขียนโปรแกรม ตัวเลือกที่นี่มีขนาดค่อนข้างใหญ่ ประการแรก มีทั้งคลาสของภาษาที่เหมาะสำหรับงานเขียนโปรแกรมเว็บทั่วไป (และหนึ่งในนั้นถูกคิดค้นขึ้นมาโดยเฉพาะ) - "ภาษาสคริปต์" ตอนนี้อย่างน้อยก็ PHP, Perl, Ruby และ Python เป็นเว็บไซต์ส่วนใหญ่ที่เขียนขึ้นตั้งแต่ร้านค้าออนไลน์ที่ง่ายที่สุดไปจนถึง vkontakte.ru เป็นต้น ในแง่ของความสามารถ ความสะดวก ผลผลิต เครื่องมือในการพัฒนา และตัวบ่งชี้ทางทฤษฎีอื่น ๆ มีความเท่าเทียมกันโดยประมาณ ความแตกต่างที่สำคัญคือความพร้อมของโปรแกรมเมอร์ ขณะนี้ ตัวชี้วัดตลาดที่วัดได้มีดังนี้: ทุกๆ 100 เรซูเม่ของโปรแกรมเมอร์ PHP ในรัสเซีย จะมีเรซูเม่ Perl 10 รายการ และ Ruby และ Python 2-3 รายการ ในทางกลับกัน ในบรรดาคนที่เรียกตัวเองว่าโปรแกรมเมอร์ PHP นั้น 80% ไม่ควรได้รับอนุญาตให้แตะโค้ดเหมือนกับการยิงปืนใหญ่ สำหรับนักพัฒนา Pearl ตัวเลขนี้อยู่ที่ประมาณครึ่งหนึ่ง และสำหรับ Ruby และ Python น้อยกว่านั้นด้วยซ้ำ เป็นที่ชัดเจนว่าตัวเลขแรกนั้นมีวัตถุประสงค์และนำมาจากไซต์ทำงานและตัวที่สองเป็นการประเมินเชิงอัตนัยแบบมีเงื่อนไขและไม่สามารถคูณได้โดยตรง แต่ไม่ว่าในกรณีใด จำนวนทั้งโปรแกรมเมอร์และโปรแกรมเมอร์ที่ดีจะถูกเรียงลำดับตามลำดับนี้: PHP, Perl, Ruby หรือ Python และระดับเฉลี่ยของพวกมันกลับตรงกันข้าม ดังนั้นหากเรามีโครงการอุตสาหกรรมที่มีนักพัฒนาและการลาออกของพนักงานจำนวนมาก เราจำเป็นต้องเลือก PHP จากภาษาของเว็บ (สามารถใช้ Perl ได้ในกรณีที่มีเหตุผลในท้องถิ่นที่สำคัญมาก) หากโปรเจ็กต์นี้สั้น โปรแกรมเมอร์จะต้องอยู่คนเดียวอย่างแน่นอนและจะไม่มีวันเปลี่ยนแปลง จากนั้นเขาก็สามารถไว้วางใจตัวเลือกได้ และตัวเลือก Ruby/Python ก็อาจเป็นปัจจัยในแง่ดีด้วยซ้ำ

นอกเหนือจากพี่น้องฝาแฝดของภาษาสคริปต์ที่ได้รับการพิจารณาแล้ว (ตัวเลือกระหว่างภาษาสังคมล้วนๆ) ยังมีภาษาอื่น ๆ ที่มีลักษณะทางเทคนิคที่แตกต่างกันและตามด้วยช่องอื่น ๆ สำหรับการใช้งาน

ภาษา C ภาษาที่ต้องการความแม่นยำของโปรแกรมเมอร์สูงสุดเป็นภาษาที่ค้นหาข้อผิดพลาดได้ยากที่สุด โดยมีโซลูชันสำเร็จรูปน้อยที่สุดและมีความเร็วในการพัฒนาที่ช้าที่สุด มันชดเชยข้อเสียเหล่านี้ด้วยข้อได้เปรียบเพียงข้อเดียว: ประสิทธิภาพซึ่งมีขนาดดีกว่าประสิทธิภาพของ PHP และแอนะล็อกหลายเท่า โดยหลักการแล้ว เหล็กตอนนี้มีราคาถูก แต่ค่าแรงก็แพง แถมยังสำคัญไม่บ่อยนัก ตามอัตภาพ หากโปรเจ็กต์คาดหวังให้มีการแสดงผลน้อยกว่าหนึ่งล้านครั้งต่อวัน คุณก็สามารถลืมเกี่ยวกับ C ได้อย่างปลอดภัย แต่หากมีการแสดงผลมากกว่า คุณควรคิดแต่เรื่องนั้นเท่านั้น และไม่ยอมรับโดยไม่มีเงื่อนไข ตัวอย่างเช่น ตัวนับ liveinternet.ru เขียนด้วยภาษา C

ภาษาซี++ มีข้อเสียเหมือนกับ C แต่ในรูปแบบที่ไม่ชัดเจน ในทางกลับกัน ให้ผลผลิตที่เทียบเคียงได้ แต่ต่ำกว่า โดยปกติจะใช้ในกรณีที่ยังต้องการประสิทธิภาพ และตรรกะทางธุรกิจมีความซับซ้อนมากและอยู่เหนือขอบเขตทางวิทยาศาสตร์ ตัวอย่างคลาสสิกคือบริการค้นหา ข้อเสียเปรียบที่สำคัญที่ป้องกันไม่ให้แทนที่ C ในช่องของมันอย่างสมบูรณ์คืออิสระที่มากขึ้นสำหรับโค้ดที่ไม่รองรับ เช่นเดียวกับในกรณีของเค้าโครงตาราง ทุกคนเขียนในภาษา C ประมาณเดียวกัน และหากโค้ดเป็นไปตามข้อกำหนดด้านคุณภาพที่เป็นทางการและตรวจสอบได้ (ไม่อนุญาตให้หน่วยความจำรั่ว จัดการข้อผิดพลาดได้อย่างถูกต้อง ฯลฯ) ก็มีแนวโน้มว่าจะอยู่ที่ระดับสมบูรณ์โดยสมบูรณ์ ระดับที่ยอมรับได้และในแง่ของลักษณะที่ไม่เป็นทางการแต่มีความสำคัญ เช่น “ความเข้าใจ” และ “การเชื่อมโยงกัน” แต่ในภาษา C++ คุณสามารถเขียนได้ทั้งเรื่องที่ดีและน่าขยะแขยง โดยปฏิบัติตามข้อกำหนดที่เป็นทางการทั้งหมด และอย่างที่สองก็เป็นเรื่องธรรมดามากกว่า

ภาษาจาวา จากมุมมองทางเทคนิค มันแตกต่างจาก C++ ในลักษณะเดียวกับที่ C++ แตกต่างจาก C นั่นคือการเปลี่ยนจาก C++ ไปเป็น Java จะทำให้ประสิทธิภาพการทำงานลดลงอีกครึ่งหนึ่ง แต่ได้รับความเร็วการพัฒนาใหม่และ ไลบรารีของโซลูชันสำเร็จรูปสามารถเทียบเคียงได้กับภาษาสคริปต์อยู่แล้ว จากมุมมองทางสังคม จำนวนโปรแกรมเมอร์ Java นั้นน้อยกว่าจำนวนโปรแกรมเมอร์ C++ และจำนวนโปรแกรมเมอร์ PHP ในขณะที่โดยเฉลี่ยแล้วพวกเขาจะมีราคาแพงกว่า และในความเห็นส่วนตัวของฉัน โดยเฉลี่ยแล้วแย่กว่าทั้งสองอย่าง สาเหตุของสถานการณ์ที่แปลกประหลาดนี้คือตลาดที่ค่อนข้างใหญ่สำหรับการพัฒนา Java ของระบบองค์กรซึ่งในอีกด้านหนึ่งทำให้เงินเดือนเพิ่มขึ้นและในทางกลับกันก็ปลูกฝังวัฒนธรรมและวิธีการเขียนโปรแกรมของตัวเองซึ่งเป็นอันตรายบนเว็บเท่านั้น . ด้วยเหตุนี้ ฉันไม่เห็นสถานการณ์เดียวที่การใช้ Java ในการพัฒนาเว็บจะสมเหตุสมผล (อย่างไรก็ตาม odnoklassniki.ru เขียนด้วยภาษา Java และทำงานได้สำเร็จ)

หากเราทำผิดพลาดและเลือก Windows เป็นระบบปฏิบัติการนอกเหนือจากภาษาที่ระบุไว้ (โดยหลักการแล้วทั้งหมดนั้นมุ่งเน้นไปที่ Unix มากกว่า แต่สามารถใช้ได้ทุกที่) อีกสองตัวเลือกจะปรากฏขึ้น: VBScript (อะนาล็อกบางประเภทของ PHP) และ C# (คล้ายกับ Java ) เนื่องจากฉันไม่เห็นประโยชน์ใดๆ จาก Windows ฉันจึงไม่สามารถแนะนำได้

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

เครื่องมือที่มีอยู่ทั้งหมด (อย่างน้อยก็เป็นที่นิยมทั้งหมด) นั้นเป็นสากล คุณสามารถปรับใช้อะไรก็ได้ในแต่ละเครื่องมือ คำถามเดียวก็คือ ด้วยเครื่องมือบางอย่าง มันจะเร็วขึ้นและถูกกว่า และกับเครื่องมืออื่น ๆ มันจะมีราคาแพงกว่าและช้าลง โดยหลักการแล้ว ไม่มีใครห้ามการใช้ภาษาเซิร์ฟเวอร์ที่แตกต่างกันสองภาษาในโปรเจ็กต์เดียว แต่สิ่งนี้มักจะทำให้ความสามารถในการจัดการของโปรเจ็กต์ลดลง - เราขึ้นอยู่กับผู้เชี่ยวชาญสองคน (หรือผู้เชี่ยวชาญสองกลุ่ม) แทนที่จะเป็นคนเดียว ซึ่งนอกเหนือจาก การทำงานโครงการจริงต้องใช้ความพยายามในการประสานงานทั้งทางสังคม (การสื่อสารระหว่างกัน) และทางเทคนิคล้วนๆ ข้อยกเว้นที่สมเหตุสมผลเพียงอย่างเดียวคือการรวมกันของภาษาสคริปต์ภาษาใดภาษาหนึ่งกับหนึ่งในคู่ C/C++ ส่วน "ผิวเผิน" ของโค้ดซึ่งรับผิดชอบอินเทอร์เฟซนั้นเขียนด้วยสคริปต์ และส่วนภายในที่มีความสำคัญต่อประสิทธิภาพการทำงานมากที่สุดจะเขียนด้วยภาษา C หรือ C++ นอกจากนี้ความสัมพันธ์ระหว่างส่วนต่าง ๆ ในโครงการต่าง ๆ อาจแตกต่างกันโดยสิ้นเชิง ตัวอย่างเช่น ulov-umov.ru เป็นโปรเจ็กต์ C++ ที่ซับซ้อนด้วยอัลกอริธึมที่ใช้เสิร์ชเอ็นจิ้นของตัวเองเป็นหลักและ wrapper Perl ขนาดเล็กที่ดึงอินเทอร์เฟซผู้ใช้ขนาด 10 หน้าอย่างแท้จริง และภายใน PHP readme.ru ที่สมบูรณ์นั้นมีโมดูล C ขนาดเล็กหนึ่งโมดูลที่ดึงผู้แจ้งข้อมูลอย่างรวดเร็วตามข้อมูลสำเร็จรูป สิ่งสำคัญคือภาษาที่มีประสิทธิผลจะต้อง "อยู่ภายใน" เสมอ และปริมาณการใช้ภาษานั้นขึ้นอยู่กับปัจจัยในท้องถิ่น

ภาษาการเขียนโปรแกรมเว็บฝั่งไคลเอ็นต์แตกต่างจากภาษาฝั่งเซิร์ฟเวอร์อย่างไร

วันที่: 2012-10-04

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

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

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

ภาษาไคลเอนต์

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

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

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

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

อย่างไรก็ตาม เนื่องจากภาษาของลูกค้าได้รับความนิยมอย่างมาก ภาษาเหล่านั้นจึงต้องมีข้อดีด้วย ใช่ มีสิทธิประโยชน์และอื่นๆ อีกมากมาย!

1) พวกเขาไม่ส่งข้อมูลไปยังเซิร์ฟเวอร์ ซึ่งทำให้ทำงานเร็วขึ้นมาก

2) ไม่จำเป็นต้องใช้ซอฟต์แวร์เพิ่มเติม ทุกสิ่งที่คุณต้องการอยู่ในเบราว์เซอร์ของไคลเอ็นต์

3) บริษัทโฮสติ้งต้องการเงินสำหรับการใช้ภาษาเซิร์ฟเวอร์ (โฮสติ้งแบบชำระเงิน) แต่ไม่ใช่สำหรับภาษาไคลเอนต์

ภาษาไคลเอนต์ที่พบบ่อยที่สุดคือ: จาวาสคริปต์ตกลง VisualBasicScript (VBS)- เพื่อให้เบราว์เซอร์เข้าใจและดำเนินการจึงมีเครื่องมือพิเศษในตัว - ล่าม

จาวาสคริปต์พัฒนาโดยบริษัท เน็ตสเคปและเดิมใช้สำหรับเบราว์เซอร์เท่านั้น เน็ตสเคป นาวิเกเตอร์- ปัจจุบันภาษานี้ได้รับความนิยมอย่างมาก VisualBasicScript (VBS)นี่เป็นภาษาอะนาล็อกของลูกค้าจากบริษัท ไมโครซอฟต์.

ดังที่ได้กล่าวไว้ก่อนหน้านี้ ภาษาทั้งหมดเหล่านี้ทำงานในเบราว์เซอร์ทั่วไปโดยไม่มีโมดูลหรือปลั๊กอินเพิ่มเติม เบราว์เซอร์ที่พบบ่อยที่สุดคือ: Internet Explorer, Opera, Mozilla ฯลฯ

ภาษาเซิร์ฟเวอร์

ภาษาฝั่งเซิร์ฟเวอร์ดำเนินการโดยตรงบนเซิร์ฟเวอร์ด้วยโปรแกรมพิเศษ ซึ่งหมายความว่าเพื่อให้ทำงานได้ ไม่ว่าผู้ใช้จะใช้เบราว์เซอร์ใด การคำนวณทั้งหมดจะยังคงเกิดขึ้นบนคอมพิวเตอร์ระยะไกล (เซิร์ฟเวอร์)

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

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

ภาษาเซิร์ฟเวอร์ที่ได้รับความนิยมมากที่สุดคือ: และ ภาษาเพิร์ล.

เพราะ ภาษาเซิร์ฟเวอร์โต้ตอบกับคอมพิวเตอร์ระยะไกล (เซิร์ฟเวอร์) จำเป็นต้องเก็บผลลัพธ์ของการโต้ตอบนี้ไว้ที่ใดที่หนึ่ง คำถามเกิดขึ้น: จะเก็บข้อมูลนี้อย่างไรและที่ไหน?

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

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

  • การแปล
  • บทช่วยสอน

ถนนนั้นยาวและยากลำบาก แต่น่าสนใจและมีประโยชน์!

บทความนี้มีจุดมุ่งหมายเพื่อเป็นแนวทางปฏิบัติสำหรับผู้ที่ต้องการเป็นนักพัฒนาเว็บมืออาชีพ ฉันเขียนโค้ดเว็บมานานกว่า 20 ปี ฉันทำงานและช่วยเหลือนักพัฒนาเว็บทุกวัน ในบทความนี้ ฉันจะอธิบายสิ่งที่คุณต้องเรียนรู้ เมื่อคุณจำเป็นต้องเรียนรู้ และแหล่งที่จะรับข้อมูล (บ่อยที่สุดแม้จะฟรีก็ตาม) จากนั้นผมจะให้คำแนะนำในการได้รับประสบการณ์จริง และที่สำคัญที่สุด การรับเงินเพื่อเขียนโค้ด

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

สิ่งที่ต้องจำ:

1. คุณสามารถเลื่อนดูบทความได้

คู่มือนี้สามารถช่วยคุณได้ไม่ว่าคุณจะอยู่ที่ไหนบนเส้นทางสู่การพัฒนาทางวิชาชีพ เลื่อนไปที่ชื่อเรื่องที่อธิบายสถานการณ์ปัจจุบันของคุณได้ดีที่สุดแล้วอ่านจากตรงนั้น หากคุณเพิ่งเริ่มต้นเส้นทางนี้หรือยังคงคิดอยู่ ให้ทำตามคำแนะนำของกษัตริย์จาก “อลิซในแดนมหัศจรรย์”:

เริ่มต้นจากจุดเริ่มต้นและดำเนินต่อไปจนกระทั่งถึงจุดสิ้นสุด และหยุดอยู่แค่นั้น

2. ลองทุกอย่างเพียงเล็กน้อยแล้วเลือกความเชี่ยวชาญ

เงินไม่ใช่สิ่งที่สำคัญที่สุด คุณต้องรักสิ่งที่คุณทำ! แต่คุณจะไม่รู้ว่าคุณชอบอะไรจนกว่าคุณจะได้ลอง


ค้นหาสิ่งที่คุณหลงใหล แล้วสร้างรายได้จากมัน

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

ฉันตัดสินใจเขียนโค้ด ฉันชอบเว็บ ฉันไม่รู้ว่าจะเริ่มตรงไหน


คุณจะประสบความสำเร็จ!

ยินดีด้วย! นี่เป็นก้าวแรกที่ยิ่งใหญ่และเป็นการเริ่มต้นของสิ่งที่น่าตื่นเต้นมาก แต่มันก็อาจเป็นเรื่องยากมากเช่นกัน ไม่ต้องกังวลฉันจะช่วย

ขั้นแรก คุณต้องทำความคุ้นเคยกับพื้นฐานของการพัฒนาเว็บไซต์ทุกด้านอย่างรวดเร็ว (“ครบวงจร”) การฝึกจะหลากหลายแต่ตื้นเขิน นี่คือการค้นหาสาขาที่คุณชอบและเพื่อเพิ่มพูนทักษะพื้นฐานในสาขาต่างๆ จากนั้นคุณจะสามารถเข้าใจและจัดการกับปัญหาชุดใหญ่ได้ ไม่ว่าคุณจะเลือกอะไรก็ตาม

เรียนรู้พื้นฐานของ HTML

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

นี่คือสิ่งที่คุณต้องเรียนรู้เกี่ยวกับ HTML:

ฉันรู้พื้นฐานของ HTML แล้ว

เย็น! นี่เป็นขั้นตอนที่สำคัญมาก ตอนนี้เรียนรู้พื้นฐานของ JavaScript

เรียนรู้พื้นฐาน JavaScript

JavaScript คือภาษาของเว็บ และเบราว์เซอร์หลักทั้งหมด (Chrome, Firefox, Safari, IE และอื่นๆ อีกมากมาย) รองรับ ทุกไซต์ ทุกเว็บแอปพลิเคชันที่คุณใช้ มักจะมีโค้ด JS จำนวนมาก ไม่ต้องพูดถึงความจริงที่ว่าภาษากำลังได้รับความนิยมบนแพลตฟอร์มอื่น ๆ - เซิร์ฟเวอร์ คอมพิวเตอร์เดสก์ท็อป และอุปกรณ์อื่น ๆ

สำหรับตอนนี้ คุณต้องมีพื้นฐาน และแหล่งข้อมูลต่อไปนี้ก็มีประโยชน์สำหรับสิ่งนั้น:

ฉันรู้พื้นฐานของ JavaScript และ HTML

อัศจรรย์! ตอนนี้มาเพิ่ม CSS ให้กับทักษะของคุณกันดีกว่า

เรียนรู้ CSS

CSS หรือ Cascading Style Sheets (สไตล์ชีทแบบเรียงซ้อน) ใช้เพื่อปรับแต่งลักษณะที่ปรากฏขององค์ประกอบ HTML บนเพจ ลองดูบทช่วยสอนฟรีของ Mozilla จากนั้นลองดู CSS-Tricks สำหรับปัญหาที่ยากที่สุดของคุณ (ค้นหาที่ด้านบนขวา)

มาดูเบื้องหลังกันดีกว่า

จนถึงตอนนี้ เราได้ดูสิ่งที่เรียกว่า “ส่วนหน้า” ของการพัฒนาเว็บแล้ว คุณคุ้นเคยกับภาษาหลักที่ทำงานในเบราว์เซอร์แล้ว ถึงเวลาที่ต้องไปยังส่วนหลัง - โค้ดที่ทำงานบนเซิร์ฟเวอร์ ไม่ต้องกังวล คุณไม่จำเป็นต้องมีเซิร์ฟเวอร์ คอมพิวเตอร์ของคุณจะจัดการเอง

มีภาษาแบ็กเอนด์มากมาย แต่เนื่องจากคุณคุ้นเคยกับ JavaScript ฉันจึงขอแนะนำให้เรียนรู้การใช้ Node.js อนุญาตให้คุณเรียกใช้โค้ด JS บนเซิร์ฟเวอร์แทนที่จะใช้บนเบราว์เซอร์

นอกจากนี้ คุณต้องเรียนรู้ Express และ MongoDB

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

คุณสามารถศึกษาทั้งสามหัวข้อนี้ได้ด้วยสื่อการเรียนรู้ที่ยอดเยี่ยมและฟรีต่อไปนี้ และความต่อเนื่องของเนื้อหา

ฉันต้องเลือกระหว่างการพัฒนาส่วนหน้า ส่วนหลัง และแบบครบวงจร

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

ณ จุดนี้ คุณได้เขียนโค้ดสองประเภท หนึ่งคือการโต้ตอบของผู้ใช้ และอีกอันสำหรับการข้อมูล คุณชอบอันไหน?

ปฏิสัมพันธ์ของผู้ใช้? ยินดีด้วย คุณเป็นนักพัฒนาส่วนหน้า!

การโต้ตอบกับข้อมูล? ยินดีด้วย คุณเป็นนักพัฒนาแบ็กเอนด์!

ทั้งคู่? ยินดีด้วย คุณเป็นนักพัฒนาแบบฟูลสแตก!

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

ฉันอยากเป็นนักพัฒนาแบบฟูลสแตก

เย็น. คุณต้องอ่านเนื้อหาทั้งหมดในส่วน “ฉันต้องการเป็นนักพัฒนาแบ็กเอนด์” และ “ฉันต้องการเป็นนักพัฒนาส่วนหน้า”

ฉันอยากเป็นนักพัฒนาส่วนหน้าและรู้พื้นฐานของ JavaScript, HTML และ CSS

เพื่อให้ทำงานได้อย่างมีประสิทธิภาพในฐานะนักพัฒนาส่วนหน้า คุณต้องมีความเชี่ยวชาญใน HTML, CSS และ JavaScript ฝั่งไคลเอ็นต์ คุณจะต้องมีความเข้าใจที่ดีเกี่ยวกับกรอบการทำงานที่สำคัญหลายประการ คุณจะได้รับทักษะที่นายจ้างและลูกค้าคาดหวังที่จะพบจากนักพัฒนาส่วนหน้า

ถึงตอนนี้คุณควรจะรู้พื้นฐานของ HTML แล้ว หรือกลับไปที่ส่วนเรียนรู้พื้นฐาน HTML

เรียนรู้ HTML ระดับกลางและขั้นสูง
ลองดูบทช่วยสอน HTML ระดับกลาง จากนั้นจึงลองดูบทช่วยสอน HTML ขั้นสูง
เรียนรู้ JavaScript ฝั่งไคลเอ็นต์ขั้นสูง


หนังสือชุดดีๆ เกี่ยวกับ JS และได้ฟรี

เพื่อปรับปรุงความสามารถ JavaScript ของคุณ ฉันขอแนะนำหนังสือชุด You Don't Know JS โดย Kyle Simpson ผู้เขียนได้โพสต์ซีรีส์ทั้งหมดออนไลน์ฟรี:

นอกจากนี้ MDN JavaScript ควรเป็นเพื่อนที่ดีที่สุดของคุณด้วย

[นอกจากนี้ คุณสามารถแปลหนังสือยอดเยี่ยม “Expressive JavaScript” ที่ยอดเยี่ยมได้ฟรีโดยไม่มีค่าใช้จ่าย]

แน่นอนว่าการรู้จัก "ส่วนหน้า", HTML, CSS และ JavaScript นั้นยอดเยี่ยมมาก แต่ในการสร้างรายได้ คุณจะต้องทำความคุ้นเคยกับกรอบการทำงานบางอย่าง

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

ฉันแนะนำให้เรียนรู้ jQuery โดยใช้สื่อ FreeCodeCamp ซึ่งเป็นวิธีที่รวดเร็วและมีประสิทธิภาพ หลังจากนั้นไปที่เว็บไซต์ฝึกอบรมอย่างเป็นทางการ - คุณจะพบคำแนะนำเพิ่มเติม

เรียนรู้กรอบงาน JS ยอดนิยม
กรอบงานทำให้การทำงานกับภาษาหรือเทคโนโลยีใดภาษาหนึ่งง่ายขึ้น เนื่องจากช่วยแก้ปัญหาที่ใหญ่ที่สุดที่เทคโนโลยีที่เลือกมีอยู่ JavaScript มีประโยชน์อย่างมากต่อการพัฒนาและการเผยแพร่เฟรมเวิร์ก

กรอบการทำงานใหม่จะปรากฏขึ้นเกือบสัปดาห์ละครั้ง ซึ่งคาดว่าจะเข้ามาแทนที่มาตรฐานการพัฒนาใหม่ คุณจะต้องสำรวจไซต์งานและทำ Google สักหน่อยเพื่อดูว่าเฟรมเวิร์กใดที่ได้รับความนิยมในตลาดของคุณ ฉันยังแนะนำเครื่องมือของ Hacker News เพื่อประเมินแนวโน้มตลาดงานอีกด้วย

ในขณะที่เขียนบทความนี้ กรอบงานต่อไปนี้ได้รับความนิยม:

เมื่อเลือกเฟรมเวิร์กที่เหมาะสมที่สุดและทำความคุ้นเคยกับมันอย่างละเอียดแล้ว ก็คุ้มค่าที่จะศึกษาเฟรมเวิร์ก CSS ที่มาพร้อมกับมัน ผู้เล่นที่ใหญ่ที่สุดสองรายในตลาดนี้ในปัจจุบันคือ Bootstrap และ Material Design

บูทสแตรป
Bootstrap สร้างโดยนักพัฒนา Twitter และค่อนข้างโตและได้รับความนิยมอยู่แล้ว มีเวอร์ชัน Bootstrap สำหรับ Angular, Angular 2 และ React
วัสดุ
วัสดุคือชุดกฎการออกแบบที่พัฒนาขึ้นที่ Google กำลังได้รับความนิยมและมีเวอร์ชันสำหรับ Angular และ React เนื่องจาก Angular เป็นผลงานของ Google วัสดุจึงเข้ากันได้อย่างลงตัว

นี่คือลิงค์บางส่วนสำหรับคุณ:

ยินดีด้วย! คุณมีทักษะที่สำคัญสำหรับนักพัฒนาส่วนหน้า!


แค่มองเขา!

ฉันอยากเป็นนักพัฒนาแบ็กเอนด์

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


ดัชนี TIOBE ของภาษาการเขียนโปรแกรม www.tiobe.com/tiobe_index?page=index

มุ่งความสนใจไปที่ภาษาที่ฉันวงกลมไว้เป็นสีเขียว หากคุณไม่รู้จักพวกเขา ให้เริ่มจากด้านบนสุดของตารางแล้วไล่ลงมา หยุดเมื่อคุณพบสิ่งที่คุณชอบและขุดให้ลึก!

หากคุณคุ้นเคยกับภาษาใดภาษาหนึ่งที่ทำเครื่องหมายเป็นสีเขียวและชอบ ให้ตั้งใจไปที่ภาษานั้น

พัฒนาทักษะการสัมภาษณ์ของคุณ
คุณต้องเตรียมตัวให้มากกว่าการเขียนโค้ด บทความดีๆ จาก Life Hacker อธิบายข้อมูลที่เป็นประโยชน์และมีคุณค่ามากมาย
สิ่งสำคัญคือการตั้งหลักในตลาด
อย่ากังวลมากเกินไปกับการได้งานในฝันกับนายจ้างในฝันพร้อมเงินเดือนในฝัน ขั้นแรกให้หางานที่คุณเขียนโค้ดเพื่อเงิน เมื่อคุณได้รับประสบการณ์มากขึ้นแล้ว คุณก็สามารถวางแผนขั้นต่อไปได้
ฉันอยากเป็นฟรีแลนซ์
การเป็นนายของตัวเองเป็นสิ่งที่ดี แต่ก็มาพร้อมกับความกดดันและความยากลำบากมากมายเช่นกัน แหล่งข้อมูลงานฟรีแลนซ์ที่ดีที่สุดที่ฉันเคยเห็นคือ DoubleYourFreelancing.com เขามีบทความหลายชุดที่จะช่วยให้คุณกลายเป็นฟรีแลนซ์ที่ดีกว่าที่เคยทำได้ อ่าน.

อีกทางเลือกหนึ่งหากคุณมั่นใจในตัวเองคือบริการของ Toptal พวกเขารับเพียง 3% ของผู้สมัครทั้งหมด และกระบวนการนี้ซับซ้อนมาก แต่ถ้าคุณเข้าร่วม คุณจะสามารถเข้าถึงงานที่มีรายได้ดีซึ่งคุณสามารถทำงานจากระยะไกลได้

ฉันเริ่มทำงานแต่รู้สึกเหมือนทางตัน
เข้าใจ. ไม่ใช่เรื่องง่าย และถ้าใครบอกคุณเป็นอย่างอื่น พวกเขาก็อาจจะไม่ทำหรือกำลังพยายามหลอกคุณให้เสียเงิน หากคุณรู้สึกติดขัด ให้ลองใช้ตัวเลือกเหล่านี้:
รีเฟรชความตั้งใจเดิมของคุณ
ถามตัวเอง เขียนลงในกระดาษว่าทำไมคุณจึงตัดสินใจเดินตามเส้นทางนี้ คำตอบของคุณยังใช้ได้อยู่หรือไม่? ถ้าใช่ทำไมต้องหยุด? ซึ่งไปข้างหน้า!