$SERVER
ฺฺBy Anuthep Thamlikhit 630710686
SERVER in PHP
$_SERVER เป็น Superglobal ใน PHP ที่ใช้เก็บข้อมูลเป็นอาร์เรย์ โดยประกอบด้วยข้อมูลต่าง ๆ เช่น ส่วนหัว เส้นทาง และตำแหน่งของสคริปต์ ซึ่งข้อมูลที่เกี่ยวข้องกับเซิร์ฟเวอร์และสภาพแวดล้อมการดำเนินการทั้งหมดมีอยู่ในอาร์เรย์ ในอาร์เรย์นี้สร้างขึ้นโดยเว็บเซิร์ฟเวอร์ ดังนั้นจึงไม่มีการรับประกันว่าทุกเว็บเซิร์ฟเวอร์จะให้ข้อมูลเหล่านั้น เซิร์ฟเวอร์อาจละเว้นบางส่วนหรือจัดหาเซิร์ฟเวอร์อื่นที่ไม่ได้ระบุไว้
ข้อมูลที่ใช้เก็บ
ข้อมูลเกี่ยวกับเซิร์ฟเวอร์: เวอร์ชันของเซิร์ฟเวอร์, ชื่อโฮสต์, พอร์ต
ข้อมูลเกี่ยวกับสคริปต์: ชื่อสคริปต์, ไดเร็กทอรีที่สคริปต์อยู่
ข้อมูลเกี่ยวกับการร้องขอ: โปรโตคอลที่ใช้, ที่อยู่ IP ของผู้ใช้, HTTP headers ต่างๆ
Server Variables
Server Variables ใน $Sverver นั้นมีหลายตัวยกตัวอย่างเช่น
$_SERVER['GATEWAY_INTERFACE']
ส่งกลับเวอร์ชันของ Common Gateway Interfaceที่เซิร์ฟเวอร์ใช้อยู่
$_SERVER['SERVER_ADDR']
ส่งกลับที่อยู่ IP ของโฮสต์เซิร์ฟเวอร์
$_SERVER['SERVER_NAME']
ส่งกลับชื่อของโฮสต์ที่ให้บริการ
$_SERVER['SERVER_SOFTWARE']
ส่งกลับสตริงการระบุเซิร์ฟเวอร์
$_SERVER['SERVER_PROTOCOL']
ส่งกลับชื่อและการแก้ไขโปรโตคอลข้อมูล
$_SERVER['REQUEST_METHOD']
ส่งคืนวิธีการร้องขอที่ใช้ในการเข้าถึงเพจ
$_SERVER['REQUEST_TIME']
ส่งกลับการประทับเวลาของการเริ่มต้นคำขอ
$_SERVER['QUERY_STRING']
ส่งกลับสตริงการสืบค้นหากเข้าถึงเพจผ่านสตริงการสืบค้น
$_SERVER['HTTP_ACCEPT']
ส่งกลับส่วนหัวยอมรับจากการร้องขอปัจจุบัน
$_SERVER['HTTP_ACCEPT_CHARSET']
ส่งกลับส่วนหัว Accept_Charset จากคำขอปัจจุบัน
$_SERVER['HTTP_HOST']
ส่งกลับส่วนหัวโฮสต์จากคำขอปัจจุบัน
$_SERVER['HTTP_REFERER']
ส่งกลับ URL ที่สมบูรณ์ของหน้าปัจจุบัน
$_SERVER['HTTPS']
มีการสอบถามสคริปต์ผ่านโปรโตคอล HTTP ที่ปลอดภัยหรือไม่
$_SERVER['REMOTE_ADDR']
ส่งกลับที่อยู่ IP จากตำแหน่งที่ผู้ใช้ดูหน้าปัจจุบัน
$_SERVER['REMOTE_HOST']
ส่งกลับชื่อโฮสต์จากตำแหน่งที่ผู้ใช้ดูหน้าปัจจุบัน
$_SERVER['REMOTE_PORT']
ส่งคืนพอร์ตที่ใช้บนเครื่องของผู้ใช้เพื่อสื่อสารกับเว็บเซิร์ฟเวอร์
$_SERVER['SCRIPT_FILENAME']
ส่งกลับชื่อพาธสัมบูรณ์ของสคริปต์ที่กำลังดำเนินการอยู่
$_SERVER['SERVER_ADMIN']
ส่งกลับค่าที่กำหนดให้กับคำสั่ง SERVER_ADMIN ในไฟล์การกำหนดค่าเว็บเซิร์ฟเวอร์
$_SERVER['SERVER_PORT']
ส่งคืนพอร์ตบนเครื่องเซิร์ฟเวอร์ที่เว็บเซิร์ฟเวอร์ใช้เพื่อการสื่อสาร (เช่น 80)
$_SERVER['SERVER_SIGNATURE']
ส่งคืนเวอร์ชันเซิร์ฟเวอร์และชื่อโฮสต์เสมือนซึ่งเพิ่มลงในเพจที่สร้างโดยเซิร์ฟเวอร์
$_SERVER['PATH_TRANSLATED']
ส่งคืนพาธตามระบบไฟล์ไปยังสคริปต์ปัจจุบัน
$_SERVER['SCRIPT_NAME']
ส่งกลับเส้นทางของสคริปต์ปัจจุบัน
$_SERVER['SCRIPT_URI']
ส่งกลับ URI ของหน้าปัจจุบัน
$_SERVER['PHP_SELF']
ส่งกลับชื่อไฟล์ของสคริปต์ที่รันอยู่ในปัจจุบัน
ตัวอย่างพร้อมคำอธิบาย
1.1) ในโค้ดจะเป็นการแสดง $_SERVER['SERVER_NAME'] โดยจะแสดงชื่อของโฮสต์ที่ให้บริการ
1.2) จะเป็นการแสดง ทั้ง $_SERVER['SERVER_NAME'],$_SERVER['SERVER_PORT'],$_SERVER['REMOTE_ADDR']
ชื่อเซิร์ฟเวอร์ พอร์ตที่ใช้ ร่วมทั้ง IP ที่อยู่ของผู้ใช้
แสดงผลลัพธ์
เปรียบเทียบกับ Python และ Java
Python
Python จะใช้ Flask เป็นเว็บเฟรมเวิร์กที่เรียบง่ายและเบาสำหรับการพัฒนาเว็บแอปพลิเคชันใน Python คุณสามารถเข้าถึงข้อมูลเซิร์ฟเวอร์และการร้องขอผ่านวัตถุ request ซึ่งมาจากโมดูล flask
ตัวอย่าง PHP และ Python พร้อมคำอธิบาย
จากตัวอย่าง จะเป็นการแสดงชื่อไฟล์ของสคริปต์ที่รันอยู่ในปัจจุบัน เช่น /test/testscript.php
นำเข้าโมดูล Flask โค้ดเริ่มต้นด้วยการนำเข้า Flask, request, และ jsonify จากไลบรารี flask เพื่อสร้างเว็บแอปและจัดการคำขอ สร้างแอป Flask และกำหนดเส้นทาง สร้างอินสแตนซ์ของแอป Flask และกำหนดเส้นทางหลัก / ที่จะเรียกใช้ฟังก์ชัน index เมื่อมีการร้องขอเข้ามา ตอบสนองด้วยข้อมูลคำขอ ฟังก์ชัน index ดึงข้อมูลเกี่ยวกับคำขอเช่น วิธีการร้องขอ, URL, โฮสต์, และที่อยู่ IP ของไคลเอนต์ แล้วส่งกลับเป็น JSON
แสดงผลลัพธ์
JavaScript
JavaScript เราใช้ Express.js เป็นเฟรมเวิร์กเว็บที่รวดเร็ว ยืดหยุ่น และเรียบง่ายสำหรับ Node.js เป็นเครื่องมือที่มีประสิทธิภาพที่ช่วยให้การสร้างเว็บแอปพลิเคชันและ API ง่ายขึ้นโดยใช้ JavaScript บนฝั่งเซิร์ฟเวอร์ Express เป็นโอเพ่นซอร์สที่พัฒนาและดูแลโดยมูลนิธิ Node.js
ตัวอย่าง PHP และ JavaScript พร้อมคำอธิบาย
1.2) จะเป็นการแสดง ทั้ง $_SERVER['SERVER_NAME'],$_SERVER['SERVER_PORT'],$_SERVER['REMOTE_ADDR']
ชื่อเซิร์ฟเวอร์ พอร์ตที่ใช้ ร่วมทั้ง IP ที่อยู่ของผู้ใช้
1.3)ตัวอย่าง JavaScript เรารันผ่าน express js เราจะกำหนด port ที่ 3000 และเมื่อเริ่มรัน portแล้ว เราจะเข้าเซิฟเวอร์ผ่าน "/" แล้ว สร้าง host = req.headers.host หรือเราต้องที่อยู่ของเซิฟเวอร์ และ uri = req.originalUrl เพื่อต้องการดู url แล้วเราทำการส่งออก uri และ host มาแสดง
แสดงผลลัพธ์
สรุป
PHP ใช้ $SERVER superglobal array เพื่อจัดเก็บข้อมูลเกี่ยวกับการร้องขอ HTTP และเซิร์ฟเวอร์ เช่น HTTP headers, URI, และ IP address.
Python ใช้ request object ในเฟรมเวิร์กอย่าง Flask หรือ Django เพื่อเข้าถึงข้อมูลการร้องขอ HTTP และเซิร์ฟเวอร์.
JavaScript (Node.js) ใช้ req object ใน Express.js เพื่อเข้าถึงข้อมูลการร้องขอ เช่น headers, method, URI, และข้อมูลใน body.
แหล่งข้อมูลที่ใช้อ้างอิง
The PHP Group. (n.d.). $_SERVER - PHP Manual. PHP.net. ดึงข้อมูลเมื่อ 12 ตุลาคม 2024, จาก https://www.php.net/manual/en/reserved.variables.server.php
W3Schools. (n.d.). PHP Tutorial. W3Schools.com. ดึงข้อมูลเมื่อ 12 ตุลาคม 2024, จาก https://www.w3schools.com/php/default.asp
CodeWithHarry. (n.d.). Home. CodeWithHarry.com. ดึงข้อมูลเมื่อ 12 ตุลาคม 2024, จาก https://www.codewithharry.com/
TutorialsPoint. (n.d.). PHP Tutorial. TutorialsPoint.com. ดึงข้อมูลเมื่อ 12 ตุลาคม 2024, จาก https://www.tutorialspoint.com/php/index.htm
GeeksforGeeks. (n.d.). PHP Tutorial. GeeksforGeeks.org. ดึงข้อมูลเมื่อ 12 ตุลาคม 2024, จาก https://www.geeksforgeeks.org/php-tutorial/?ref=outind
Slide:
Clips:
Last updated