อ่านคำขอจริงและการตอบกลับจริง แล้วเรียนรู้ว่า 200, 404 และ 500 หมายความว่าอะไรกันแน่
เปิดบทเรียนนี้ใน KodokonHTTP (HyperText Transfer Protocol) คือภาษาที่เบราว์เซอร์กับเซิร์ฟเวอร์ใช้พูดคุยกัน ข่าวดีคือมันไม่ใช่ไบนารีที่อ่านไม่รู้เรื่อง แต่เป็น ข้อความที่อ่านออก คำขอหนึ่งจบได้ในไม่กี่บรรทัด: คำกริยาหนึ่งคำ ที่อยู่หนึ่งที่ แล้วตามด้วย เฮดเดอร์ ที่เติมบริบทให้ครบ (ฉันชอบภาษาอะไร ฉันใช้เบราว์เซอร์ตัวไหน) การตอบกลับก็มีรูปแบบเดียวกัน: รหัสตัวเลข เฮดเดอร์ บรรทัดว่างหนึ่งบรรทัด แล้วจึงเป็นเนื้อหา
curl -i https://example.com
HTTP/2 200
content-type: text/html; charset=UTF-8
content-length: 1256
cache-control: max-age=86400
<!doctype html>
<html>
...คำกริยาที่อยู่ตอนต้นของคำขอเรียกว่า เมธอด และมันประกาศความตั้งใจของคุณ GET แค่ขออ่านทรัพยากรหนึ่ง: นี่คือสิ่งที่เบราว์เซอร์ทำทุกครั้งที่คุณเปิดหน้าเว็บ POST ส่งข้อมูลไปให้เซิร์ฟเวอร์ โดยทั่วไปคือตอนที่คุณกดส่งฟอร์มสมัครสมาชิก PUT อัปเดตรายการที่มีอยู่แล้ว และ DELETE ขอให้ลบมันทิ้ง ให้โฟกัสที่สองตัวแรกไว้ก่อน: มันคิดเป็นสัดส่วนท่วมท้นของการรับส่งข้อมูลทั้งหมด
curl -X POST -d "name=Sarah&age=30" https://httpbin.org/postทุกการตอบกลับเริ่มต้นด้วย รหัสสถานะ สามหลัก แค่หลักแรกหลักเดียวก็บอกสถานการณ์ให้คุณรู้แล้ว รหัสในกลุ่ม 2xx หมายถึงสำเร็จ: 200 แปลว่า "นี่ไง สิ่งที่คุณขอมา" รหัส 3xx คือการเปลี่ยนเส้นทาง: 301 แปลว่า "หน้านี้ย้ายไปแล้ว ไปที่นั่นแทนนะ" รหัส 4xx ชี้ไปที่ความผิดพลาดฝั่ง ไคลเอนต์: 404 (หาทรัพยากรไม่เจอ), 403 (ห้ามเข้าถึง), 401 (คุณต้องลงชื่อเข้าใช้ก่อน) ส่วนรหัส 5xx ชี้ไปที่ความล้มเหลวฝั่ง เซิร์ฟเวอร์: 500 คือข้อผิดพลาดภายในแบบคลาสสิก
curl -I https://example.com/this-page-does-not-exist
HTTP/2 404
content-type: text/html; charset=UTF-8