เกือบทุกอย่างที่คุณเห็นในเบราว์เซอร์จะถูกส่งไปยังคอมพิวเตอร์ของคุณผ่านโปรโตคอล HTTP ตัวอย่างเช่น เมื่อคุณเปิดหน้าบทความนี้ เบราว์เซอร์ของคุณส่งคำขอ HTTP จำนวนมาก ( Request ) และได้รับการตอบกลับจำนวนมาก ( Response )
ส่วนหัว HTTP ( Header ) เป็นส่วนสำคัญของคำขอและการตอบสนอง HTTP เหล่านี้ ซึ่งสื่อถึงข้อมูลเกี่ยวกับเบราว์เซอร์ของลูกค้า เพจที่ร้องขอ เซิร์ฟเวอร์ ฯลฯ
ในบทช่วยสอนนี้ เราจะแสดงวิธีรับข้อมูลที่คุณต้องการจาก Request Headers บทช่วยสอนนี้จะแนะนำวิธีการรับข้อมูลที่เราสนใจจากส่วนหัวของคำขอ ( ส่วนหัวของ Request Headers ) และตั้งค่าบางอย่างให้กับส่วนหัวการตอบสนองที่จำเป็น ( ส่วนหัวของ Response Headers )
วิธีที่ง่ายที่สุดในการรับข้อมูลเกี่ยวกับเนื้อหาของ Request Headers คือการดำเนินการตามคำขอในแอปพลิเคชันที่เผยแพร่
- ไปที่เครื่องมือสำหรับนักพัฒนา ( F12 )
- สลับไปที่แท็บ Networks
- การเลือกคำขอที่ส่งจากรายการ
- สลับไปที่แท็บ Headers และค้นหา Request Headers
วิธีใช้ AppMaster เพื่อโต้ตอบกับส่วนหัวการตอบกลับคำขอ
ในตัวออกแบบแบ็คเอนด์ AppMaster คุณสามารถรับข้อมูลส่วนหัวของคำขอได้หากระบุชื่อไว้ในบล็อกกระบวนการทางธุรกิจ รับ Get Request Headers
- Name [ string ] - ชื่อส่วนหัว;
- Value [ string ] - ค่าของส่วนหัว;
หากต้องการเพิ่ม Header ที่กำหนดเองในการตอบกลับ - จะใช้บล็อก Set Response Header
- Name [ สตริง ] - ชื่อส่วนหัว;
- Value [ string ] - ค่าของส่วนหัว;
มี Request Headers อยู่มากมาย แต่มีบางส่วนที่อธิบายไว้ด้านล่าง (ข้อมูลนำมาจาก https://www.w3.org/Protocols/HTTP/HTRQ_Headers.html ):
- From - ในรูปแบบ Internet mail ระบุชื่อผู้ใช้ที่ร้องขอ ฟิลด์นี้อาจใช้เพื่อวัตถุประสงค์ในการบันทึกและรูปแบบการป้องกันการเข้าถึงที่ไม่ปลอดภัย การตีความของฟิลด์นี้คือคำขอกำลังดำเนินการในนามของบุคคลที่ได้รับ ซึ่งยอมรับความรับผิดชอบสำหรับวิธีการดำเนินการ ที่อยู่อินเทอร์เน็ตเมลในฟิลด์นี้ไม่จำเป็นต้องตรงกับโฮสต์อินเทอร์เน็ตที่ออกคำขอ (ตัวอย่างเช่น เมื่อส่งคำขอผ่านเกตเวย์ ควรใช้ที่อยู่ของผู้ออกต้นฉบับ) ถ้าเป็นไปได้ ที่อยู่อีเมลควรเป็นที่อยู่อีเมลที่ถูกต้อง ไม่ว่าในความเป็นจริงแล้วจะเป็นที่อยู่อีเมลอินเทอร์เน็ตหรือจดหมายทางอินเทอร์เน็ตที่เป็นตัวแทนของที่อยู่ในระบบจดหมายอื่นก็ตาม
- Accept - ฟิลด์นี้มีรายการรูปแบบการแสดงที่คั่นด้วยเครื่องหมายอัฒภาค (ค่า metaformation Content-Type ) ซึ่งจะได้รับการยอมรับในการตอบกลับคำขอนี้ แน่นอนว่าชุดที่กำหนดอาจแตกต่างกันไปในแต่ละคำขอจากผู้ใช้รายเดียวกัน
ตัวอย่าง:
ยอมรับ: ข้อความ/ธรรมดา ข้อความ/html
ยอมรับ: ข้อความ/x-dvi; คิว=.8; mxb=100,000; mxt=5.0, ข้อความ/xc - Accept-Encoding - คล้ายกับ ยอมรับ แต่แสดงรายการประเภท การเข้ารหัสเนื้อหา ที่ยอมรับได้ในการตอบกลับ
ตัวอย่าง:
ยอมรับการเข้ารหัส: x-compress; x-ซิป - Referer - ฟิลด์ส่วนหัวที่ไม่บังคับนี้อนุญาตให้ไคลเอ็นต์ระบุที่อยู่ ( URI ) ของเอกสาร (หรือองค์ประกอบภายในเอกสาร) ซึ่งได้รับ URI ในคำขอ เพื่อประโยชน์ของเซิร์ฟเวอร์ ซึ่งช่วยให้เซิร์ฟเวอร์สร้างรายการลิงก์ย้อนกลับไปยังเอกสาร ความสนใจ การบันทึก ฯลฯ ช่วยให้สามารถติดตามลิงก์ที่ไม่ดีเพื่อการบำรุงรักษาได้ หากได้รับ URI บางส่วน ก็ควรแยกวิเคราะห์โดยสัมพันธ์กับ URI ของออบเจกต์ของคำขอ
ตัวอย่าง:
ผู้อ้างอิง: http://www.w3.org/hypertext/DataSources/Overview.html - Authorization - หากมีบรรทัดนี้ แสดงว่ามีข้อมูลการอนุญาต รูปแบบเป็นแบบระบุ (TBS) รูปแบบของฟิลด์นี้อยู่ในรูปแบบที่ขยายได้ คำแรกคือข้อกำหนดของระบบการอนุญาตที่ใช้งานอยู่
ตัวอย่าง:
การอนุญาต: Bearer BtHKEsVs5mNNtNf7UWoVwjJzFqLOzucA - Accept-Language - คล้ายกับ ยอมรับ แต่แสดงรายการค่าภาษาที่ต้องการในการตอบกลับ การตอบกลับในภาษาที่ไม่ได้ระบุจะไม่ผิดกฎหมาย
- User-Agent - ถ้ามีบรรทัดนี้จะแสดงโปรแกรมซอฟต์แวร์ที่ไคลเอ็นต์เดิมใช้ นี่เป็นเพื่อวัตถุประสงค์ทางสถิติและการติดตามการละเมิดโปรโตคอล มันควรจะรวมอยู่ด้วย คำแรกที่คั่นด้วยช่องว่างสีขาวต้องเป็นชื่อผลิตภัณฑ์ซอฟต์แวร์ โดยมีเครื่องหมายทับและตัวกำหนดเวอร์ชันให้เลือก ผลิตภัณฑ์อื่น ๆ ที่เป็นส่วนหนึ่งของตัวแทนผู้ใช้อาจใส่เป็นคำแยกต่างหาก
ตัวอย่าง:
ตัวแทนผู้ใช้: LII-Cello/1.0 libwww/2.5
ตัวอย่าง Response Headers :
- Allowed - แสดงชุดคำขอที่ผู้ใช้ที่ร้องขอได้รับอนุญาตให้ออกสำหรับ URL นี้ หากข้ามบรรทัดส่วนหัวนี้ วิธีการเริ่มต้นที่อนุญาตคือ " GET HEAD "
- Public - ตามที่ อนุญาต แต่แสดงคำขอเหล่านั้นที่ทุกคนอาจใช้ หากละเว้น ค่าเริ่มต้นคือ " GET " เท่านั้น
- Content-Length - บอกเป็นนัยว่าเนื้อหาเป็นไบนารีและควรอ่านโดยตรงจากลิงก์การสื่อสาร โดยไม่ต้องแยกวิเคราะห์บรรทัด ฯลฯ เมื่อข้อมูลเป็นส่วนหนึ่งของคำขอ ป้องกันการหลบหนีและยกเลิกการหลบหนีของลำดับการสิ้นสุด
- Content-Encoding - ระบุกลไกการเข้ารหัสที่ใช้ ปัจจุบันใช้เฉพาะ x-compress และ x-gzip
- Content-Type - ระบุประเภทเอกสาร
- Content-Length - บอกเป็นนัยว่าเนื้อหาเป็นไบนารีและควรอ่านโดยตรงจากลิงก์การสื่อสาร โดยไม่ต้องแยกวิเคราะห์บรรทัด ฯลฯ เมื่อข้อมูลเป็นส่วนหนึ่งของคำขอ ป้องกันการหลบหนีและยกเลิกการหลบหนีของลำดับการสิ้นสุด
- Last-Modified - แก้ไขอ็อบเจกต์ครั้งล่าสุด เช่น วันที่ของเวอร์ชันนี้ หากเอกสารเป็น "เอกสารที่มีชีวิต"
มาดูตัวอย่างการรับ IP ของผู้ใช้และค่า คุกกี้ ของผู้ใช้จาก ส่วนหัวของคำขอ
ในการรับ IP ของผู้ใช้จะใช้ x-real-ip ส่วนหัวคำขอ คุกกี้ ให้ข้อมูลโทเค็นคุกกี้
BP มีลักษณะดังนี้:
ในขั้นตอนต่อไป จะต้องสร้างจุดสิ้นสุดสำหรับ BP นี้
UI มีลักษณะดังนี้:
ในที่สุดผลลัพธ์จะแสดงด้านล่าง ผู้ใช้จะได้รับข้อมูลจากส่วนหัวเมื่อคลิกปุ่ม (ทริกเกอร์ onClick ในเวิร์กโฟลว์ของปุ่ม) และ ชื่อของป้ายกำกับ จะได้รับการอัปเดตด้วยข้อมูลนี้ ( คุณสมบัติการอัปเดตป้ายกำกับ )