ผลที่ตามมาสำหรับการใช้ส่วนหัวสถานที่สัมพันธ์คืออะไร?


17

ตามข้อมูลจำเพาะส่วนหัวสถานที่ที่ใช้ในการเปลี่ยนเส้นทางจำเป็นต้องใช้ชื่อเซิร์ฟเวอร์

HTTP/1.1 301 Moved Permanently
...
Location: http://example.com/foo/baz/bar

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

HTTP/1.1 301 Moved Permanently
...
Location: /foo/baz/bar

มีผลกระทบด้านลบ / ที่น่าประหลาดใจต่อการใช้ URL สัมพัทธ์ในส่วนหัวสถานที่ตั้งหรือไม่? ข้อกังวลโดยเฉพาะของฉันคือวิธีที่ Google / เครื่องมือค้นหาจะตีความสิ่งนี้ แต่ถ้ามีอะไรอีกที่ฉันไม่คิดว่าฉันชอบที่จะได้ยิน


คุณช่วยเสนอราคาบิตที่แน่นอนที่คุณได้รับจากความต้องการนั้น ไม่ท้าทายฉันไม่เห็นมันในทันทีและไม่อยากอ่าน RFC ทั้งหมดเพื่อหามัน นอกจากนี้คุณกำลังอ้างถึงข้อกำหนด HTTP 1.0 แต่ใช้ส่วนหัวHTTP 1.1ในตัวอย่างของคุณ (ซึ่งอาจมีหรือไม่มีการเปลี่ยนแปลงเนื้อหาที่อนุญาต)
Su '

ส่วนที่ 10.11 tools.ietf.org/html/rfc1945#page-44 ไม่มีความรู้ของฉันใน 1.1 ข้อมูลจำเพาะที่ "แก้ไข" สิ่งนี้
Alan Storm

คำตอบ:


15

ตามที่รุ่นปัจจุบันของ HTTP / 1.1 มาตรฐาน RFC 2616, ค่าของLocationส่วนหัวจะต้องเป็น URI

อย่างไรก็ตามในร่างมาตรฐานที่จัดทำโดยHTTPbis Working Groupเพื่อแทนที่ RFC 2616 ในที่สุดสิ่งนี้ได้รับการเปลี่ยนแปลงเพื่ออนุญาต URIs ที่เกี่ยวข้องเช่นกันเพราะเห็นได้ชัดว่า :

"คำจำกัดความของส่วนหัว Location [ใน RFC 2616] แตกต่างกันไปตามวิธีการต่าง ๆ ของเว็บเบราว์เซอร์อย่างน้อยที่ต้องจัดการกับมันเพื่อให้สามารถทำงานร่วมกันกับเนื้อหาบนเว็บได้"

ในทางปฏิบัติ AFAIK เกี่ยวกับเบราว์เซอร์หลักและเครื่องมือค้นหาทั้งหมดเข้าใจและยอมรับการเปลี่ยนเส้นทาง HTTP ไปยัง URL ที่เกี่ยวข้อง อย่างไรก็ตามจนกระทั่งร่าง HTTPbis บางวันกลายเป็นมาตรฐานอย่างเป็นทางการและได้รับการยอมรับอย่างกว้างขวางจะมีเอเจนต์ผู้ใช้ใหม่หรือชัดเจนที่ใช้มาตรฐานปัจจุบันกับตัวอักษรและยอมรับ URL ที่แน่นอนเท่านั้น ดังนั้นสิ่งที่ปลอดภัยที่ต้องทำในตอนนี้คือการใช้ URL แบบสัมบูรณ์ในLocationส่วนหัวตามที่กฎหมายของ Postelแนะนำ:

"ระมัดระวังในสิ่งที่คุณส่งให้เสรีในสิ่งที่คุณยอมรับ"


3
ตอนนี้ RFC 2616 ล้าสมัยแล้วโดย 7231 ซึ่งอนุญาต URL ที่เกี่ยวข้องในส่วนหัวสถานที่ตั้ง ตัวแทนผู้ใช้ที่ใช้มาตรฐานกับจดหมายจึงจะยอมรับ URL ที่เกี่ยวข้องทันที
ZoFreX

6

ส่วน 14.30 ของ HTTP 1.1 RFC http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30ไม่แตกต่างกันอย่างมีนัยสำคัญ ฉันไม่รู้ว่าคุณจะเห็นข้อ จำกัด ในทางปฏิบัติที่แท้จริงสำหรับเรื่องนี้

ครั้งเดียวที่ฉันเคยเห็นแม้กระทั่งคำเตือนเกี่ยวกับปัญหานี้คือเมื่อฉันเคยทดสอบใน Lynx และสถานที่ไม่แน่นอนมันจะเตือนคุณว่า "ค่าที่ตั้งไม่สมบูรณ์" - แต่ถ้าฉันจำได้ถูกต้องมันก็จะปล่อยให้คุณไป ไปยังตำแหน่งใหม่ ฉันเพิ่งทดสอบ Lynx 2.8.7 และดูเหมือนว่าจะไม่ทำเช่นนั้นอีกต่อไปแม้ว่านั่นอาจเป็นปัญหาการกำหนดค่า

ตอนนี้คุณพูดว่า:

ข้อกังวลโดยเฉพาะของฉันคือวิธีที่ Google / เครื่องมือค้นหาจะตีความสิ่งนี้ แต่ถ้ามีอะไรอีกที่ฉันไม่คิดว่าฉันชอบที่จะได้ยิน

ฉันเชื่อว่านี่รับประกันการทดสอบ ฉันจะตั้งค่า url ใส่ไว้ในแผนผังไซต์ xml ของไซต์ของคุณและให้ url นั้นเปลี่ยนเส้นทางตามที่คุณอธิบาย ฉันคิดว่าสิ่งที่ต้องทำคือตรวจสอบโดยใช้Google เครื่องมือของผู้ดูแลเว็บและดูว่ามีผลกระทบด้านลบหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.