คำอธิบายฟังก์ชันของเว็บเซิร์ฟเวอร์ เว็บเซิร์ฟเวอร์คืออะไร เว็บเซิร์ฟเวอร์บนคอมพิวเตอร์ที่บ้าน: การติดตั้ง

ถ้าจะพิมพ์เข้าไป. แถบที่อยู่เบราว์เซอร์ของคุณ http://www.site/how-web-server-work/ แล้วคลิก ใส่รหัส- หน้านี้ของเว็บไซต์ของเราจะปรากฏบนหน้าจอ

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

ตอนนี้รายละเอียดเพิ่มเติมเล็กน้อย:

URL ประกอบด้วยสามส่วน:

1. โปรโตคอล (http)

2. ชื่อเซิร์ฟเวอร์ (www.site)

3. ที่อยู่เพจ (เว็บเซิร์ฟเวอร์ทำงานอย่างไร)

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

ตามโปรโตคอล HTTP เบราว์เซอร์ส่งคำขอไปยังเซิร์ฟเวอร์โดยขอไฟล์ http://www.site/how-web-server-work/

โปรดทราบว่า คุกกี้สามารถส่งจากเบราว์เซอร์ไปยังเซิร์ฟเวอร์ได้

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

อินเทอร์เน็ต

แล้ว “อินเทอร์เน็ต” คืออะไร? อินเทอร์เน็ตประกอบด้วยคอมพิวเตอร์หลายร้อยล้านเครื่องที่เชื่อมต่อเข้าด้วยกัน เครือข่ายคอมพิวเตอร์ - เครือข่ายช่วยให้คอมพิวเตอร์ทุกเครื่องสามารถสื่อสารระหว่างกัน คอมพิวเตอร์ที่บ้านสามารถเชื่อมต่ออินเทอร์เน็ตได้มากที่สุด วิธีการที่แตกต่างกันและอุปกรณ์ต่างๆ - เริ่มต้นด้วยโมเด็มดั้งเดิมสำหรับ สายโทรศัพท์,ปั๊มการเชื่อมต่อผ่าน เครือข่ายท้องถิ่น (แลน) กับผู้ให้บริการอินเทอร์เน็ต ( ผู้ให้บริการอินเทอร์เน็ต).

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

ลูกค้าและเซิร์ฟเวอร์

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

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

ที่อยู่ IP

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

ตัวเลขสี่ตัวในที่อยู่ IP เรียกว่า ออคเต็ตเพราะสามารถรับค่าระหว่าง 0 ถึง 255 หรือ 2 8 ค่าที่เป็นไปได้

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

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

ชื่อโดเมน

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

ชื่อ www.site จริงๆ แล้วประกอบด้วยสามส่วน:

1. ชื่อโลก ไวด์เว็บ(www) คุณสามารถทำได้โดยไม่ต้องระบุ "www" อย่างชัดเจน แม้ว่าอย่างเป็นทางการแล้ว นี่จะเป็นเครือข่ายอื่นก็ตาม

2. ชื่อโดเมน (qriosity)

3. ในโซนโดเมน ระดับบนสุด(รู)

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

เซิร์ฟเวอร์ชื่อโดเมน

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

เมื่อคุณป้อน URL http://www..site และส่งต่อไปยังเซิร์ฟเวอร์ชื่อโดเมน เซิร์ฟเวอร์จะส่งคืนที่อยู่ IP ที่ถูกต้องสำหรับ www.site เนมเซิร์ฟเวอร์จำนวนหนึ่งอาจเกี่ยวข้องกับการรับที่อยู่ IP ที่ถูกต้อง

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

พอร์ต

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

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

หากเซิร์ฟเวอร์ยอมรับการเชื่อมต่อบนพอร์ตจาก โลกภายนอกและหากไฟร์วอลล์ไม่ป้องกันพอร์ต คุณสามารถเชื่อมต่อกับพอร์ตที่กำหนดไว้ล่วงหน้าจากคอมพิวเตอร์เครื่องใดก็ได้บนอินเทอร์เน็ตและใช้บริการได้ โปรดทราบว่าไม่มีสิ่งใดที่บังคับให้คุณทำ เช่น เก็บเว็บเซิร์ฟเวอร์ไว้ที่พอร์ต 80 หากคุณติดตั้งเซิร์ฟเวอร์ของคุณและโหลดซอฟต์แวร์เว็บเซิร์ฟเวอร์ไว้ คุณสามารถวางเว็บเซิร์ฟเวอร์ไว้ที่พอร์ต 999 หรือพอร์ตอื่นๆ ที่ไม่ได้ใช้ . ตัวอย่างเช่น หากเครื่องของคุณชื่อ xxx.yyy.com ก็สามารถเชื่อมต่อจาก URL ได้ http://xxx.yyy.com:999 -":999" ระบุหมายเลขพอร์ตที่สามารถเข้าถึงเว็บเซิร์ฟเวอร์ของคุณได้อย่างชัดเจน หากไม่ได้ระบุพอร์ต เบราว์เซอร์จะถือว่าเว็บเซิร์ฟเวอร์สามารถเข้าถึงได้โดยใช้พอร์ต 80 ที่รู้จัก

โปรโตคอล

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

เพิ่มเติม: ความปลอดภัย

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

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

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

นอกจากนี้: หน้าไดนามิก

เกิดอะไรขึ้น พลวัต หน้าเว็บ- ตัวอย่างเช่น:

1. อะไรก็ได้ สมุดเยี่ยมช่วยให้คุณสามารถป้อนข้อความในรูปแบบ HTML และแสดงรายการใหม่และเก่าโดยอัตโนมัติ

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

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

หน้าเว็บไซต์ของเราก็เป็นไดนามิกเช่นกันซึ่งสร้างขึ้นโดยใช้ PHP ช่วยด้วยการใช้ฐานข้อมูล ข้อมูลมายเอสคิวแอล.

เว็บไซต์สมัยใหม่ไม่ได้เป็นเพียงชุดเอกสาร HTML เท่านั้น แต่ยังรวมถึงเทคโนโลยีมากมาย รวมถึงเทคโนโลยีเซิร์ฟเวอร์ เช่น: SSI (รวมฝั่งเซิร์ฟเวอร์), PHP (PHP: Hypertext Preprocessor, PHP: ไฮเปอร์เท็กซ์ตัวประมวลผลล่วงหน้า), ฐานข้อมูลและอีกมากมาย . ในการทำความคุ้นเคยและศึกษาเทคโนโลยีเหล่านี้ อาจเป็นความผิดพลาดหากใช้ไซต์งานที่คุณเยี่ยมชมบนอินเทอร์เน็ต ดังนั้นจึงควรติดตั้งชุดโปรแกรมที่จำเป็นบนคอมพิวเตอร์ของคุณและทดสอบทุกอย่างในนั้น

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

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

ในอนาคตเราจะพิจารณาโปรแกรมสำหรับคอมพิวเตอร์ที่บ้านด้วย ระบบปฏิบัติการหน้าต่าง

ให้เราอธิบายโดยย่อว่าเทคโนโลยีที่จะใช้ในการสร้างไซต์คืออะไร

เว็บเซิร์ฟเวอร์

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

PHP

ภาษาโปรแกรมยอดนิยมที่ใช้ในการพัฒนาเว็บไซต์

MySQL

ระบบการจัดการฐานข้อมูล

PhpMyAdmin

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

ฉลาด

ระบบเทมเพลตอันทรงพลังสำหรับ PHP ใช้ภาษาของตัวเองที่รวม HTML และแท็ก Smarty พิเศษ เทมเพลตจำเป็นสำหรับการแยก รหัสโปรแกรมและการนำเสนอเอกสารหรืออย่างอื่น เพื่อแยกตรรกะออกจากเนื้อหา

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

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

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

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

ฟังก์ชั่นเว็บเซิร์ฟเวอร์

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

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

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

เว็บเซิร์ฟเวอร์มีไว้เพื่ออะไร?

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

เว็บเซิร์ฟเวอร์ที่มีชื่อเสียงที่สุด

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

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

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

วัตถุประสงค์ของการบรรยาย:กำหนดแนวคิดของ “เว็บเซิร์ฟเวอร์” และสร้างแนวคิดในการทำงานของกลไกนี้

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

หลังจากที่ผู้ใช้เข้าใช้งานแล้ว ทรัพยากรเฉพาะเมื่อใช้โปรโตคอล HTTP ไคลเอ็นต์ (โดยปกติจะเป็นเบราว์เซอร์) จะส่งคำขอ HTTP ไปยังเว็บเซิร์ฟเวอร์ โดยทั่วไปแล้ว ชื่อเซิร์ฟเวอร์สัญลักษณ์จะถูกระบุ (เช่น "http://www.microsoft.com") - ในกรณีนี้ เบราว์เซอร์จะแปลงชื่อนี้เป็นที่อยู่ IP ก่อนโดยใช้ บริการ DNS- หลังจากนั้น ข้อความ HTTP ที่สร้างขึ้นจะถูกส่งไปยังเว็บเซิร์ฟเวอร์ผ่านโปรโตคอล HTTP ในข้อความนี้ เบราว์เซอร์จะระบุว่าต้องดาวน์โหลดทรัพยากรใดและข้อมูลเพิ่มเติมทั้งหมด หน้าที่ของเว็บเซิร์ฟเวอร์คือการฟังพอร์ต TCP เฉพาะ (โดยปกติคือพอร์ต 80) และยอมรับข้อความ HTTP ขาเข้าทั้งหมด หากข้อมูลที่เข้ามาไม่ตรงกับรูปแบบ ข้อความ HTTPจากนั้นคำขอดังกล่าวจะถูกละเว้นและข้อความแสดงข้อผิดพลาดจะถูกส่งกลับไปยังไคลเอ็นต์

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


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

- นอกจากนี้ ในกรณีเช่นนี้ ควรใช้ความระมัดระวังในการเพิ่มประสิทธิภาพโค้ดแอปพลิเคชัน เช่น ใช้แคช - ในกรณีนี้ เมื่อประมวลผลแต่ละคำขอ โหลดบนโปรเซสเซอร์กลางจะน้อยลง ซึ่งอาจทำให้งานของผู้โจมตีซับซ้อนขึ้นอย่างมาก . ไม่ใช่เรื่องแปลกที่เว็บไซต์อิสระหลายแห่งจะโฮสต์บนเว็บเซิร์ฟเวอร์เดียวกัน นอกจากนี้ เว็บไซต์เหล่านี้ทั้งหมดยังใช้ที่อยู่ IP เดียวกัน เหล่านั้น. เว็บเซิร์ฟเวอร์ที่มีที่อยู่ IP เดียวสามารถโฮสต์เว็บไซต์ได้หลายแห่งภายในตัวมันเอง และแต่ละเว็บไซต์ดังกล่าวจะเชื่อมโยงด้วยที่อยู่ของตัวเอง (ตัวอย่างเช่น เว็บเซิร์ฟเวอร์หนึ่งอาจโฮสต์เว็บไซต์ต่อไปนี้: “microsoft.com”, “gotdotnet.ru”, “techdays.ru” ฯลฯ) สิ่งนี้เป็นไปได้อย่างไร? ปรากฏการณ์นี้เรียกว่าโฮสติ้งเสมือน - เพื่อให้เข้าใจถึงวิธีการทำงาน เรามาดูกระบวนการโต้ตอบระหว่างไคลเอนต์และเซิร์ฟเวอร์อีกครั้ง เบราว์เซอร์ส่งคำขอ HTTP ไปยังที่อยู่ IP ของเว็บเซิร์ฟเวอร์ซึ่งเชื่อมโยงกับชื่อโดเมน การแก้ไขที่อยู่ IP เกิดขึ้นโดยใช้บริการ DNS อย่างไรก็ตาม แม้ว่าคำขอจะถูกส่งโดยใช้ที่อยู่ IP ที่ได้รับ แต่ไคลเอ็นต์จะระบุส่วนหัว HTTP "โฮสต์" เพิ่มเติมที่ระบุเว็บไซต์. ด้วยข้อมูลนี้ เว็บเซิร์ฟเวอร์จึงสามารถแยกแยะการเข้าถึงเว็บไซต์หลายแห่งและยังคงใช้ที่อยู่ IP เดียวกันได้ นี้เป็นอย่างมาก จุดสำคัญเพราะหากจำเป็นต้องลงทะเบียนที่อยู่ IP แยกต่างหากสำหรับแต่ละชื่อโดเมน พื้นที่ที่อยู่ของโปรโตคอล IP (v.4) ก็จะสิ้นสุดลงอย่างรวดเร็ว และค่าใช้จ่ายในการโฮสต์เว็บไซต์บนอินเทอร์เน็ตทั่วโลกก็จะสูงขึ้นมาก . เพื่อให้ชัดเจนยิ่งขึ้น เรามาดูกันว่าโฮสติ้งเสมือนทำงานอย่างไรโดยใช้ตัวอย่าง สมมติว่าคุณมีเว็บเซิร์ฟเวอร์ที่มีที่อยู่ IP 85.51.210.22 เซิร์ฟเวอร์นี้โฮสต์เว็บไซต์หลายแห่ง: mysite1.com, mysite2.com, mysite3.com เซิร์ฟเวอร์ DNSกำหนดค่าเพื่อให้ชื่อโดเมนแต่ละชื่อชี้ไปยังที่อยู่ IP เดียว 85.51.219.22


มาดูกันว่าคำขอ HTTP ใดที่เบราว์เซอร์จะสร้างเมื่อเข้าถึงแต่ละไซต์ เมื่อเข้าถึงไซต์ "mysite1.com" คำขอ HTTP อาจมีลักษณะดังนี้:


เมื่อเข้าถึงไซต์ "mysite2.com" คำขอ HTTP จะดูแตกต่างออกไป


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

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

  • รหัสโปรแกรมที่ใช้ฟังก์ชั่นบริการสำหรับการโต้ตอบผ่านโปรโตคอล HTTP (รหัสโปรแกรมของเว็บเซิร์ฟเวอร์เอง)
  • รหัสโปรแกรมที่ใช้ตรรกะของเว็บแอปพลิเคชันเฉพาะ (ตรรกะทางธุรกิจ การเข้าถึง DBMS ฯลฯ)

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


ในอดีต มีอินเทอร์เฟซการโต้ตอบสองประเภทหลัก: แอปพลิเคชันภายนอกและเว็บเซิร์ฟเวอร์ - CGI และ ISAPI

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

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

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

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

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

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

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

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

สิ่งที่มีแนวโน้มมากที่สุดคือการใช้อินเทอร์เฟซ ISAPI เนื่องจากความสามารถในการปรับขนาดที่สูงกว่า กลุ่มแอปพลิเคชันถูกสร้างขึ้นภายในเว็บเซิร์ฟเวอร์ (สำหรับแต่ละเว็บแอปพลิเคชัน กระบวนการที่แยกจากกันภายในระบบปฏิบัติการ ซึ่งรวมถึงหลายเธรดในการประมวลผลคำขอ) มีการใช้งานเว็บเซิร์ฟเวอร์จำนวนมาก โดยแอปพลิเคชัน ASP.NET โดยทั่วไปจะใช้เว็บเซิร์ฟเวอร์ Microsoft Internet Information Services (IIS)

  • คำถามเพื่อความปลอดภัย
  • เว็บแอปพลิเคชันคืออะไร?
  • เบราว์เซอร์คืออะไร?
  • อธิบายวงจรการประมวลผลคำขอไปยังเว็บแอปพลิเคชันจากไคลเอนต์
  • เหตุใดเทคโนโลยีการพัฒนาแอปพลิเคชันเว็บจึงจำเป็น (เช่น ASP.NET, PHP, Ruby On Rails เป็นต้น)
  • โปรโตคอล HTTP ทำงานอย่างไรและมีไว้เพื่ออะไร?
  • ส่วนหัวของข้อความ HTTP คืออะไรและมีไว้เพื่ออะไร
  • เนื้อความของข้อความ HTTP คืออะไร?
  • ส่วนหัวถูกแยกออกจากเนื้อหาข้อความในข้อความ HTTP อย่างไร
  • วิธีการร้องขอ HTTP คืออะไร?
  • รหัสสถานะการตอบกลับ HTTP คืออะไร
  • ยกตัวอย่างส่วนหัว HTTP สำหรับคำขอ HTTP และการตอบกลับ HTTP พวกเขาแตกต่างกันอย่างไร?อัลกอริธึมแบบสมมาตร
  • การเข้ารหัสจากอสมมาตร?
  • โปรโตคอล HTTPS ที่ปลอดภัยทำงานอย่างไร
  • เว็บเซิร์ฟเวอร์คืออะไร?
  • เว็บเซิร์ฟเวอร์และเว็บแอปพลิเคชันสามารถโต้ตอบกับอินเทอร์เฟซใดได้บ้าง
  • CGI แตกต่างจาก ISAPI อย่างไร
  • แชร์โฮสติ้งคืออะไร?
  • ตั้งชื่อการใช้งานเว็บเซิร์ฟเวอร์ที่ได้รับความนิยมสูงสุด
  • แอปพลิเคชัน ASP.NET ทำงานภายในเว็บเซิร์ฟเวอร์ใด

เราได้ออกหนังสือเล่มใหม่ “Content Marketing in” เครือข่ายทางสังคม: วิธีเข้าถึงหัวสมาชิกของคุณและทำให้พวกเขาหลงรักแบรนด์ของคุณ”

สมัครสมาชิก

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


วิดีโอเพิ่มเติมในช่องของเรา - เรียนรู้การตลาดทางอินเทอร์เน็ตกับ SEMANTICA

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

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

เว็บเซิร์ฟเวอร์ทำอะไร?

ของเขา งานหลัก– การจัดเก็บข้อมูล หน้า ไฟล์ รูปภาพ เนื้อหาข้อความ
งาน:

  • รับคำขอ
  • รันโปรแกรมในภาษาโปรแกรมพิเศษ (เซิร์ฟเวอร์)
  • สร้างหน้าเว็บ
  • ส่งกลับไปยังผู้ใช้
  • ปกป้องข้อมูล
  • ระบุผู้เยี่ยมชม
  • เก็บบันทึกคำขอ
  • ให้บริการคำขอประเภทอื่น: mailto ฯลฯ

เพื่อให้เข้าใจถึงวิธีการทำงานของเว็บเซิร์ฟเวอร์ คุณต้องมีความเข้าใจหลักการถ่ายโอนข้อมูลบนเครือข่าย ขึ้นอยู่กับกฎที่เรียกว่าโปรโตคอล: URL ใด ๆ เริ่มต้นด้วยการระบุประเภท (ftp, http://, https:// ฯลฯ )
ไฮเปอร์ข้อความ โปรโตคอลการถ่ายโอน– โปรโตคอลการส่งข้อมูล หน้าเว็บไซต์จะมีลักษณะเช่นนี้เสมอ เอกสารไฮเปอร์เท็กซ์- นี่คือผลลัพธ์สุดท้ายของเซิร์ฟเวอร์หรือโปรแกรมไคลเอนต์

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

สิ่งที่จำเป็นสำหรับเว็บเซิร์ฟเวอร์

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

มีบริษัทพิเศษที่ให้บริการโฮสติ้ง คุณกำลังเช่าเซิร์ฟเวอร์ คุณได้รับโควต้าสำหรับการโฮสต์ไฟล์ไซต์
แต่ถ้าคุณมีเว็บไซต์ที่เรียบง่ายคุณก็สามารถทำได้ด้วยตัวเอง

เมื่อปัญหาเกี่ยวกับเซิร์ฟเวอร์ได้รับการแก้ไขแล้ว คุณจะต้องผูกที่อยู่ IP แบบคงที่เข้ากับเซิร์ฟเวอร์

ไซต์จะพร้อมใช้งานบนเว็บเซิร์ฟเวอร์หลังจากลงทะเบียนแล้ว ชื่อโดเมน, การแปลที่อยู่เสร็จสมบูรณ์ บริการดีเอ็นเอส- การเชื่อมโยงที่อยู่ IP (เช่น 111.111.111.111) และชื่อโดเมน (www.site.com)

เซิร์ฟเวอร์ที่พบบ่อยที่สุด

อาปาเช่

นี่เป็นผลิตภัณฑ์แจกจ่ายฟรีและมีข้อดีหลายประการ:

  • การสนับสนุนนักพัฒนาอย่างต่อเนื่อง
  • โมดูลสำหรับการทำงานกับ ภาษาฝั่งเซิร์ฟเวอร์การเขียนโปรแกรม PHP, Perl, Python, Ruby, ASP ฯลฯ
  • โอเพ่นซอร์ส โปรแกรมเมอร์หลายคนมีส่วนร่วมในการดัดแปลงเพื่อให้เหมาะกับความต้องการของพวกเขา ตัวอย่างเช่น ชุมชนที่พูดภาษารัสเซียจะปรับให้เข้ากับการเข้ารหัสภาษารัสเซีย
  • - เดิมทีสร้างขึ้นสำหรับ Unix แต่ตอนนี้รองรับโดย Windows, Mac OS, BSD, Linux, OS/2 และ Novell NetWare
  • ความปลอดภัย.

ระหว่างการติดตั้ง ให้ระบุชื่อโฮสต์ของคุณ เช่น localhost คัดลอกหน้า html ใดๆ ไปยังโฟลเดอร์ htdocs ซึ่งอยู่ภายในโฟลเดอร์ Apachex.x (โดยที่ x.x คือหมายเลขเวอร์ชัน) หรือสร้างมันขึ้นมาใน Notepad โดยการป้อนข้อความใดๆ และบันทึกด้วยนามสกุล html

เมื่อไฟล์ปรากฏในโฟลเดอร์ ให้เปิดเบราว์เซอร์แล้วพิมพ์ที่อยู่: localhost://PAGE NAME.html ข้อความของคุณจะปรากฏบนหน้าจอ - เพจถูกเปิดจากเซิร์ฟเวอร์ หากคุณเห็นข้อผิดพลาด “ไม่สามารถเข้าถึงไซต์ได้” แสดงว่า Apache ไม่ทำงาน ไอคอนของมันอยู่ในถาด
คลิกที่มันและเลือก "เล่น" หลังจากนี้ทุกอย่างจะได้ผล

เอ็นกนิกซ์

ส่วนแบ่งของไซต์ที่ใช้งานอยู่ที่ 21.13% (การวิจัยของ Netcraft) ส่วนใหญ่จะใช้โดยบริษัทขนาดใหญ่และ นักพัฒนามืออาชีพ: Yandex, Mail.ru, Rambler ฯลฯ NGNIX สามารถทนต่อผู้เยี่ยมชมจำนวนมาก เชื่อถือได้ ปลอดภัย และคิดมาอย่างดี
แจกจ่ายอย่างอิสระ แต่มีผู้จ่ายเงินปรากฏขึ้น รุ่นพลัส, ราคาตั้งแต่ 2,500 เหรียญสหรัฐ

ไอไอเอส

ชื่อเสียงของมันได้รับการรับรองจากชื่อที่มีชื่อเสียงของผู้พัฒนา เป็นชุดของบริการบนเว็บและรวมเข้ากับ Windows แพลตฟอร์มการเขียนโปรแกรมแบบเนทิฟคือ ASP.NET แต่สามารถใช้ทางเลือกอื่นเช่น PHP ได้

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

แพ็คเกจการติดตั้ง

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

  • เปิดเซิร์ฟเวอร์ สภาพแวดล้อมการพัฒนาแบบพกพาที่มีฐานข้อมูล ภาษาการเขียนโปรแกรม และเวอร์ชันต่างๆ มากมาย รวมถึง บริการเพิ่มเติม- ตัวอย่างเช่นอินเทอร์เฟซสำหรับการทำงานกับฐานข้อมูล PhpMyAdmin วันนี้เป็นชุดติดตั้งที่ได้รับความนิยมมากที่สุด มันยังใช้งานได้จากแฟลชไดรฟ์อีกด้วย ดาวน์โหลดฟรีที่ความเร็วต่ำ สำหรับ 100 รูเบิล ความเร็วจะเพิ่มขึ้นอย่างมาก
  • แซมป์ แพ็คเกจที่รองรับอย่างแข็งขัน: Apache, Php, Perl, MariaDB ฯลฯ มีแผงควบคุม ดาวน์โหลดฟรี
  • - ชุดที่สะดวกมากทั้งหมด เครื่องมือที่เหมาะสมรวมถึง Apache, PHP, MySQL, PhpMyAdmin น่าเสียดาย, เวอร์ชันล่าสุดรวมถึงการกระจายมรดก โดยทั่วไปแล้วยังเหมาะสำหรับการฝึกอีกด้วย เมื่อพิจารณาจากฟอรัมแล้ว โปรเจ็กต์นี้ไม่ได้รับการสนับสนุนอีกต่อไป