ความแตกต่างระหว่าง HTTP 1.0 และ HTTP 1.1 (พร้อมตาราง)

สารบัญ:

Anonim

หากคุณใช้อินเทอร์เน็ต คุณอาจเคยเจอคำว่า HTTP หรือ HTTPS นอกจากนี้ยังเป็นจดหมายที่มีคนดูบ่อยที่สุด โดยเฉพาะอย่างยิ่งเมื่อพิจารณาจากเว็บไซต์หลายพันล้านเว็บไซต์ที่เปิดใช้งานอยู่ในปัจจุบัน HTTP หรือ HyperText Transfer Protocol เป็นตัวย่อ ซึ่งทำหน้าที่เป็นทั้งฝั่งไคลเอ็นต์และโปรโตคอลเซิร์ฟเวอร์ ซึ่งกำหนดวิธีการส่งและจัดโครงสร้างข้อความผ่านอินเทอร์เน็ต

HTTP 1.0 กับ HTTP 1.1

ความแตกต่างระหว่าง HTTP 1.0 และ HTTP 1.1 ก็คือ ใน เพื่อแสดงคำขอที่สำเร็จและเพื่อระบุปัญหาในการส่ง จะใช้รหัสสถานะ HTTP 1.0 HTTP/1.1 รองรับการถ่ายโอนก้อน ซึ่งเปิดใช้งานการสตรีมเนื้อหาในกลุ่มและส่วนหัวพิเศษที่จะส่งหลังจากเนื้อหาข้อความ

ในปี 1996 HTTP/1.0 ได้รับการแนะนำและยอมรับอย่างเป็นทางการ ความนิยมได้พุ่งสูงขึ้นตั้งแต่นั้นเป็นต้นมา HTTPv1.0 มีให้เฉพาะการตรวจสอบเบื้องต้นเท่านั้น (การควบคุมการตอบสนองต่อความท้าทาย) ปัญหาสำคัญของเทคนิคนี้คือชื่อผู้ใช้และรหัสผ่านไม่ได้รับการเข้ารหัส ทำให้เสี่ยงต่อการถูกสอดแนม และไม่มีข้อจำกัดด้านเวลา มีรหัสสถานะเพียง 16 รหัสเท่านั้น

HTTP 1.1 ยังมีการเชื่อมต่อแบบต่อเนื่อง ซึ่งหมายความว่าสามารถส่งการตอบกลับและคำขอจำนวนมากผ่านการเชื่อมต่อ HTTP เดียวกันได้ วิธี OPTIONS เป็นวิธีการใหม่ใน HTTP/1.1 ไคลเอ็นต์ HTTP สามารถใช้เทคนิคนี้เพื่อค้นหาความสามารถของเซิร์ฟเวอร์ HTTP ได้อย่างง่ายดาย ส่วนใหญ่จะใช้ในเว็บแอปพลิเคชันสำหรับการแบ่งปันทรัพยากรข้ามต้นทาง

ตารางเปรียบเทียบระหว่าง HTTP 1.0 และ HTTP 1.1

พารามิเตอร์ของการเปรียบเทียบ

HTTP 1.0

HTTP 1.1

รหัสสถานะ มีรหัสสถานะ 16 รหัสที่สามารถกำหนดได้ อย่างไรก็ตาม ป๊อปอัปข้อผิดพลาดไม่แม่นยำเพียงพอ การรายงานข้อผิดพลาดทำได้เร็วและมีประสิทธิภาพมากขึ้นด้วยความสามารถในการระบุรหัสสถานะ 24 รหัส
กลไกการตรวจสอบสิทธิ์ เนื่องจากรหัสผ่านและชื่อผู้ใช้นั้นส่งเป็นข้อความธรรมดาหรือเข้ารหัสด้วย base64 กลไกการพิสูจน์ตัวตนพื้นฐานจึงไม่ปลอดภัย เนื่องจากใช้การพิสูจน์ตัวตนแบบไดเจสต์และการรับรองความถูกต้อง NTLM จึงค่อนข้างปลอดภัย
เก็บเอาไว้ ส่วนหัว If-Modified-Since ใช้เพื่อช่วยในการแคช ใช้ส่วนหัวพิเศษบางอย่างเช่นการควบคุมแคช
การเพิ่มประสิทธิภาพการทำงาน รองรับการแคชเพื่อให้บริการเพจเร็วขึ้น การปรับให้เหมาะสมหลายอย่างถูกใช้เป็นวิธีแก้ปัญหาสำหรับข้อกำหนด "การเชื่อมต่อหกรายการต่อโฮสต์" ได้แก่ การแยกส่วน การต่อข้อมูล การแทรก และการแบ่งส่วนย่อยโดเมน
คุณสมบัติหลัก มีคำขอและคำตอบเดียวเท่านั้นสำหรับการเชื่อมต่อ TCP แต่ละครั้ง เปิดใช้งานการเชื่อมต่อซ้ำ ซึ่งหมายความว่าสามารถส่งและรับคำขอและคำตอบจำนวนมากสำหรับการเชื่อมต่อ TCP แต่ละครั้ง

HTTP 1.0 คืออะไร?

HTTPv1.0 มีให้เฉพาะการตรวจสอบเบื้องต้นเท่านั้น (การควบคุมการตอบสนองต่อความท้าทาย) ปัญหาสำคัญของเทคนิคนี้คือชื่อผู้ใช้และรหัสผ่านไม่ได้รับการเข้ารหัส ทำให้เสี่ยงต่อการถูกสอดแนม และไม่มีข้อจำกัดด้านเวลา ข้อมูลใดๆ ที่ได้รับจากการสอดแนมจะสามารถใช้งานได้นานหลังจากได้รับ ลูกค้าควรคำนวณเช็คซัมของรหัสผ่าน ชื่อผู้ใช้ ค่าครั้งเดียว รวมถึงประเภทคำขอ HTTP และ URI ที่ร้องขอสำหรับการตอบกลับที่ถูกต้อง

เนื่องจาก HTTP1.0 มีไว้เพื่อใช้การเชื่อมต่อใหม่ของ TCP สำหรับแต่ละคำขอ การอุทธรณ์แต่ละครั้งจึงต้องเสียค่าใช้จ่ายในการสร้างการเชื่อมต่อใหม่ของ TCP เนื่องจากธุรกรรมทางอินเทอร์เน็ตส่วนใหญ่นั้นสั้นและแทบไม่คืบหน้าเลยเกินกว่าระยะเริ่มต้นช้า จึงไม่ใช้ประโยชน์จากแบนด์วิดท์ที่มีอยู่อย่างเหมาะสม แม้ว่าการใช้งาน version1.0 บางตัวจะใช้ส่วนหัว "keep-alive" เพื่อเรียกร้องให้ลิงก์สามารถคงชีวิตไว้ได้ แต่วิธีนี้ใช้ไม่ได้ผลกับพร็อกซีที่อยู่ระหว่างกลาง

เซิร์ฟเวอร์ยังคงต้องตอบกลับในลำดับเดียวกันกับคำขอที่ตรงกันสำหรับการเชื่อมต่อที่กำหนด ลูกค้าไม่ต้องรอการตอบกลับคำขอก่อนหน้าก่อนที่จะส่งคำขออื่นผ่านการเชื่อมต่อเดียวกัน (การวางท่อ) ช่วยลดเวลาแฝงในการเดินทางไปกลับของเครือข่ายในขณะเดียวกันก็ปรับความสามารถของโปรโตคอล TCP ให้เหมาะสม

HTTP 1.1 คืออะไร?

โดยการแนะนำการเชื่อมต่อถาวรและการวางท่อช่วยแก้ปัญหานี้ได้ HTTP/1.1 บอกเป็นนัยว่าการเชื่อมต่อของ TCP ควรยังคงใช้งานได้เว้นแต่จะได้รับการร้องขออย่างชัดเจนให้ยกเลิกการเชื่อมต่อเมื่อใช้การเชื่อมต่อแบบถาวร อนุญาตให้ลูกค้าส่งคำอุทธรณ์จำนวนมากผ่านการเชื่อมต่อเดียวกันโดยไม่ต้องรอให้ตอบแต่ละข้อ ซึ่งช่วยเพิ่มประสิทธิภาพของ HTTP/1.1 เหนือ HTTP/1.0 ได้อย่างมาก

ขออภัย เทคนิคการเพิ่มประสิทธิภาพนี้มีคอขวดโดยธรรมชาติ เนื่องจากแพ็กเก็ตข้อมูลหลายชุดไม่สามารถส่งต่อกันได้ มีบางครั้งที่คำขอที่ด้านหน้าของคิวล้มเหลวในการรับทรัพยากรที่ต้องการ ทำให้คำขอทั้งหมดที่อยู่เบื้องหลังคิวนั้นถูกบล็อก

สิ่งนี้เรียกว่าการบล็อกส่วนหัวของบรรทัด HOL และเป็นปัญหาสำคัญเมื่อต้องปรับปรุงประสิทธิภาพการเชื่อมต่อ HTTP/1.1 การเชื่อมต่อ TCP แบบคู่ขนานแยกกันอาจแก้ปัญหาได้ อย่างไรก็ตาม จำนวนการเชื่อมต่อ TCP พร้อมกันระหว่างไคลเอนต์และเซิร์ฟเวอร์มีจำกัด และการเชื่อมต่อใหม่แต่ละรายการใช้ทรัพยากรจำนวนมาก

การควบคุมโฟลว์ใน HTTP/1.1 ขึ้นอยู่กับ TCP เมื่อสร้าง TCP ทั้งเซิร์ฟเวอร์และไคลเอ็นต์จะใช้การตั้งค่าเริ่มต้นของระบบเพื่อกำหนดขนาดบัฟเฟอร์ หากบัฟเฟอร์ของผู้รับเต็มบางส่วน บัฟเฟอร์จะแจ้งให้ผู้ส่งทราบถึงหน้าต่างรับของผู้รับ หรือจำนวนพื้นที่ว่างในบัฟเฟอร์

ความแตกต่างหลักระหว่าง HTTP 1.0 และ HTTP 1.1

บทสรุป

นับตั้งแต่ก่อตั้งในปี 1989 HTTP หรือ Hypertext Transfer Protocol เป็นมาตรฐานสำหรับการถ่ายโอนข้อมูลบนเว็บ มีการปรับเปลี่ยน HTTP/1.1 เพียงเล็กน้อยตั้งแต่เปิดตัวครั้งแรกในปี 1997 อย่างไรก็ตาม ในปี 2015 มีการแนะนำ

มันมีหลายวิธีในการลดเวลาแฝง ตั้งแต่นั้นมา HTTP/1.1 ก็ได้รับความนิยมเพิ่มขึ้น โดยมีการประมาณการคร่าวๆ ที่อ้างว่าประมาณหนึ่งในสามของเว็บไซต์ทั้งหมดบนอินเทอร์เน็ตรองรับในขณะนี้ การทำความเข้าใจความแตกต่างทางเทคโนโลยีระหว่าง HTTP/1.1 และ HTTP/2 สามารถช่วยให้นักพัฒนาเว็บทำการตัดสินอย่างมีการศึกษาและมีประสิทธิภาพเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดในโลกที่เปลี่ยนแปลงไปนี้

อ้างอิง

ความแตกต่างระหว่าง HTTP 1.0 และ HTTP 1.1 (พร้อมตาราง)