ความหมาย
เซิร์ฟเวอร์ได้รับ header ของคำขอแล้ว และไคลเอนต์ส่ง body ต่อได้ เป็นการตอบกลับชั่วคราวที่ส่งก่อนสถานะสุดท้าย
สาเหตุที่พบบ่อย
- ไคลเอนต์ส่ง Expect: 100-continue ก่อนอัปโหลดไฟล์ใหญ่
- curl เพิ่ม Expect: 100-continue ให้ body ของ POST ที่ใหญ่กว่า 1 KB
- พร็อกซีหรือเซิร์ฟเวอร์ยืนยันว่าจะรับ body
วิธีแก้ไข
สำหรับไคลเอนต์หรือผู้เยี่ยมชม
ไม่ต้องแก้อะไร: รอ 100 แล้วจึงส่ง body หากเซิร์ฟเวอร์ไม่ตอบเลย ให้ส่ง body หลังรอครู่หนึ่ง หรือลบ header Expect ออก (curl -H 'Expect:')
สำหรับผู้ดูแลเว็บไซต์หรือ API
เซิร์ฟเวอร์ส่วนใหญ่ส่ง 100 ให้อัตโนมัติ ตรวจ header อย่างการยืนยันตัวตนและ Content-Length ก่อน แล้วตอบด้วยข้อผิดพลาดสุดท้าย (401, 413) แทน 100 หากจะปฏิเสธ body อยู่แล้ว
ตัวอย่างการตอบกลับ
HTTP/1.1 100 Continue ข้อกำหนด
คำถามที่พบบ่อย
› จะเห็น 100 Continue ในแท็บ Network ของเบราว์เซอร์ไหม
ปกติไม่เห็น เบราว์เซอร์ไม่ส่ง Expect: 100-continue และการตอบกลับชั่วคราวจะถูกซ่อนไว้ ส่วนใหญ่จะพบ 100 กับ curl, SDK และไคลเอนต์อัปโหลด
› 100 Continue เป็นการตอบกลับสุดท้ายหรือไม่
ไม่ใช่ เป็นเพียงข้อมูล หลังได้รับ body เซิร์ฟเวอร์ยังต้องส่งสถานะสุดท้าย เช่น 200, 201 หรือ 413