เข้าใจการทำงานของ HTTP ผ่าน Google Cloud Platform

ทุกคนคงคุ้นเคยกันดีผ่านการท่องโลก Internet ว่าต้องใช้ URL ในการเข้าถึงเว็บไซต์ต่างๆที่เราต้องการ เช่น https://www.facebook.com/

ไม่ว่าจะไปที่เว็บไซต์ไหนก็จำเป็นจะต้องมีคำว่า “https” ขึ้นต้นก่อนเสมอ เอ๊ะ มันคืออะไรนะ

บทความนี้จะมาไขข้อสงสัย ผ่านเวอร์ชัน Original อย่าง http (ไม่มี s) มาลุยกัน!

  1. HTTP คืออะไร
  2. HTTP ทำงานยังไง
  3. Google Cloud Platform
  4. มาลองเล่นกัน
    1. HTTP Server
    2. HTTP Client
  5. เนื้อหาเพิ่มเติม

HTTP คืออะไร

มีชายคนหนึ่งชื่อว่า Tim Berners-Lee ได้พบปัญหาว่ามีเอกสารวิจัยเยอะแยะมากมาย จะทำอย่างไรเพื่อให้เข้าถึงได้ง่าย และทุกคนสามารถเข้าถึงได้

Tim Berners-Lee จึงได้คิดค้น “Hyper Text Transfer Protocol” หรือชื่อย่อ HTTP เพื่อใช้ในการตีพิมพ์งานวิจัยของเขา (พี่ Tim เขาเป็นนักวิจัยด้านนิวเคลียร์ แล้วมาคิดค้น HTTP ได้ไงเนี่ย5555)

Tim Berners-Lee รูปภาพจาก Wikipedia

HTTP ทำงานยังไง

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

HTTP ประกอบไปด้วย 2 ส่วน

  1. HTTP Client มีไว้ส่งคำขอ และรับข้อมูลจาก HTTP Server เช่น Web Browser ที่เราใช้กันไม่ว่าจะเป็น Google Chrome, Safari หรืออะไรก็ได้ที่สามารถเข้าถึง Internet
  2. HTTP Server มีไว้รับคำขอ และส่งข้อมูลไปให้ผู้เรียก เช่น Apache2, Tomcat
การทำงานของ HTTP

แล้วมันรับส่งข้อมูลกันยังไง? บทความนี้จะจำลองการทำงานของ HTTP Client ให้ดู!

Google Cloud Platform

บทความนี้จะทำผ่าน Google Cloud Platform (GCP) เปรียบเสมือนการสร้างคอมพิวเตอร์ขึ้นมาเครื่องหนึ่ง โดยช่วยให้ทุกคนสามารถทำตามไปพร้อมกันได้ ไม่ว่าคอมพิวเตอร์ของคุณจะใช้ระบบปฏิบัติการตัวไหน

วิธีการใช้ Google Cloud Platform

1. สมัคร Google Cloud Platform

2. กด Hamburger Manu และเลือก Compute Engine

3. เลือก Create Instance โดยใน GCP จะเรียกคอมพิวเตอร์ 1 เครื่องว่า 1 Instance

4. ตั้งชื่อตามใจเราได้เลย จากนั้นเลือก Machine เป็น E2 เพราะราคาถูกที่สุด เหมาะสำหรับการทดลองใช้

5. เลือก Machine Type เป็น e2-micro เพราะราคาถูกสุดเช่นกัน

6. เลือก Boot Disk และเลือก Operating System ให้เป็น Ubuntu (Operating System แต่ละตัวมีคำสั่งไม่เหมือนกัน)

7. เลือก Allow HTTP traffic เนื่องจากเราจะส่ง Request เข้ามาด้วย HTTP

8. รอโหลดซักครู่ เมื่อขึ้นหน้านี้แปลว่าเราพร้อมแล้ว!

มาลองเล่นกัน

SSH in Google Cloud Platform

เมื่อเราได้คอมพิวเตอร์หรือที่ใน GCP จะเรียกว่า Instance แล้วให้กดเข้าไปที่ SSH เพื่อเข้าถึง SSH-in-browser ทำให้เราสามารถสั่งการ Instance เครื่องนี้ได้

HTTP Server

ลองเปิด Web Browser ของเรา โดยเข้าไปที่ External IP ของ Instance ที่เราพึ่งสร้างขึ้นมา เช่น http://34.134.251.188

แต่สิ่งที่เราเจอคือความว่างเปล่า เนื่องจาก HTTP Client ได้ส่ง HTTP Request ออกไป แต่เรายังไม่มี HTTP Server เลยไม่มีอะไรตอบกลับมา

เรายังไม่มี HTTP Server

เราจะมาติดตั้ง HTTP Server กัน โดยใช้คำสั่งของ Ubuntu (เป็น Operating System ที่เราเลือกเอาไว้ตอนสร้าง Instance) ติดตั้ง HTTP Server ที่ชื่อว่า Apache2

sudo apt install apache2

เมื่อติดตั้ง Apache2 เสร็จ ลองใช้คำสั่งเพื่อตรวจสอบการทำงานของ Apache2

service apache2 status

ถ้าขึ้นว่า Active: active (running) ก็แปลว่าเรามี HTTP Server แล้วว สามารถลองเข้าไปเช็คผ่าน Web Browser ด้วย External IP ของตัวเองได้เลย

HTTP Client

เรามาดูกันว่า HTTP Client ทำงานยังไง

แผนของเราคือเราจะสร้างหน้าเว็บง่ายๆขึ้นมา จากนั้นเราจะจำลองเป็น HTTP Client ส่งคำขอไปที่ HTTP Server เพื่อให้ HTTP Server ตอบกลับมาเป็นหน้าเว็บที่เราสร้างเอาไว้

จำลองการทำงานของ HTTP Client

เริ่มจากสร้างหน้าเว็บง่ายๆขึ้นมาก่อนที่ HTTP Server โดยใช้คำสั่ง

sudo nano /var/www/html/sample.html

ในไฟล์ sample.html จะสร้างปุ่มคำว่า 2024 ง่ายๆ

<button>2024</button>

จากนั้นกด Ctrl + O + Enter เพื่อ Save และกด Ctrl + X เพื่อออกจาก Text Editor

สามารถเข้าไปดูหน้าที่เราพึ่งสร้างได้จาก External IP ผ่าน Web Browser เช่น http://34.134.251.188/sample.html

มาแล้วว ปุ่มที่เราพึ่งสร้าง

จากนั้นเราจะส่ง HTTP Request ไปที่ HTTP Server

แล้ว HTTP Server จะต้องส่ง HTTP Response กลับมาเป็นหน้าปุ่ม 2024 ที่เราพึ่งสร้าง

โดยจะจำลองการทำงานนี้ของ HTTP Client ผ่าน cURL ใช้คำสั่ง

curl http://34.134.251.188/sample.html
HTTP Server ตอบกลับมาเป็นปุ่มที่เราสร้าง

ถ้าเติม –verbose ด้วย จะแสดงข้อความ 3 อย่าง:

  1. * เป็นข้อความจากตัว curl เอง
  2. > เป็นข้อความที่ส่งไปหา HTTP Server
  3. < เป็นข้อความที่ HTTP Server ตอบกลับมา

เนื้อหาเพิ่มเติม

ในปัจจุบัน HTTP Client มีหลายตัวมาก เช่น Web Browser, App on Mobile, App on Smart Watch, IoT อีกมากมาย

ปัจจุบันจึงนิยมใช้ Web Service เป็นตัวกลางระหว่าง HTTP Client ทั้งหมด

แล้วเว็บ Web Service ทำงานยังไง? มาหาคำตอบได้ที่บทความนี้

ใช้งานเสร็จแล้วกดลบ Instance ที่เราพึ่งสร้างใน Google Cloud ด้วยนะ ไม่งั้นเงินจะหายไปแบบไม่รู้ตัว55555

Get new posts sent directly to your inbox!


Comments

Leave a comment