square-right$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 พร้อมคำอธิบาย

  1. จากตัวอย่าง จะเป็นการแสดงชื่อไฟล์ของสคริปต์ที่รันอยู่ในปัจจุบัน เช่น /test/testscript.php

  2. นำเข้าโมดูล 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.

แหล่งข้อมูลที่ใช้อ้างอิง

Slide:

Clips:

Last updated