ความยาวสูงสุดของ URL ในเบราว์เซอร์ต่างกันคือเท่าใด


4838

ความยาวสูงสุดของ URL ในเบราว์เซอร์ที่แตกต่างกันคืออะไร? มันแตกต่างกันระหว่างเบราว์เซอร์หรือไม่?

ไม่โปรโตคอล HTTP กำหนดมันได้หรือไม่


38
FWIW สำหรับผู้ใช้ Windows, เส้นทางเซิร์ฟเวอร์เกิน 250 ตัวอักษรอาจจะทำให้เกิดความเศร้าโศกเมื่อมีการสร้าง URL ที่ยกตัวอย่างเช่นดูHttpContext.Current.Server.MapPath ล้มเหลวสำหรับชื่อแฟ้มยาวที่forums.asp.net บรรทัดด้านล่าง: ถ้าข้อ จำกัด หนึ่งไม่ได้รับคุณอีกหนึ่งอาจ
gerryLowry

21
จากsupport.microsoft.com/kb/208427 "ความยาว URL สูงสุดคือ2,083ตัวอักษรใน Internet Explorer"
gavenkoa

9
ฉันขอถามได้ไหมว่าทำไมคุณถึงต้องรู้เช่นนั้น? คือสิ่งที่เป็นประโยชน์กรณีที่มี URL ยาว?
o0 '

17
@Lohoris: ถ้าเป็นรูปแบบการใช้งานgetมากกว่าpostแล้วบุ๊คมาร์คหน้าถึงโดยที่เต็มไปในรูปแบบจะจับข้อมูลที่ถูกป้อน ในบางกรณีอาจไม่ดี แต่ในบางกรณีอาจมีประโยชน์ อย่างไรก็ตามเพื่อให้สามารถใช้งานได้เบราว์เซอร์จะต้องสามารถจัดการ URL ที่มีข้อมูลทั้งหมดได้
supercat

4
@Lohoris เมื่อเราเขียนหน้าเพื่อสร้างรายงานเราใช้แบบฟอร์มเกณฑ์ มันจะมีประโยชน์ในบางรายงานเพื่อให้สามารถส่งอีเมล URL ไปยังใครบางคนที่มีเกณฑ์ในตัวขึ้นอยู่กับรายงานที่เราถูกบังคับให้ใช้ในบางครั้งpostหรือเกณฑ์จะถูกตัดทอน อีกกรณีการใช้งาน
buzzsawddog

คำตอบ:


4955

คำตอบสั้น ๆ - จำกัดความยาวสูงสุด 2000 อักขระ

หากคุณเก็บ URL ไม่เกิน 2,000 ตัวอักษรพวกเขาจะทำงานร่วมกับซอฟต์แวร์ไคลเอ็นต์และเซิร์ฟเวอร์

หากคุณกำหนดเป้าหมายเบราว์เซอร์บางตัวโปรดดูด้านล่างเพื่อดูรายละเอียดข้อ จำกัด เฉพาะ

คำตอบอีกต่อไป - ก่อนมาตรฐาน ...

RFC 2616 (Hypertext Transfer Protocol HTTP / 1.1) ส่วน 3.2.1 กล่าวว่า

โปรโตคอล HTTP ไม่ได้สถานที่ใด ๆ เบื้องต้นข้อ จำกัด เกี่ยวกับความยาวของ URI เซิร์ฟเวอร์จะต้องสามารถจัดการ URI ของทรัพยากรใด ๆ ที่พวกเขาให้บริการและควรจะสามารถจัดการ URIs ของความยาวไม่ จำกัด หากพวกเขาให้รูปแบบตาม GET ที่สามารถสร้าง URIs ดังกล่าว เซิร์ฟเวอร์ควรส่งคืนสถานะ 414 (Request-URI ยาวเกินไป) หาก URI ยาวเกินกว่าที่เซิร์ฟเวอร์สามารถจัดการได้ (ดูหัวข้อ 10.4.15)

ที่ได้รับการ RFC ละทิ้งRFC7230ซึ่งเป็นรีเฟรชของ HTTP / 1.1 มันมีภาษาที่คล้ายกัน แต่ยังแนะนำต่อไปนี้:

ข้อ จำกัด ad hoc ต่าง ๆ เกี่ยวกับความยาวบรรทัดการร้องขอพบได้ในทางปฏิบัติ ขอแนะนำว่าผู้ส่งและผู้รับ HTTP ทั้งหมดสนับสนุนความยาวบรรทัดการร้องขออย่างน้อย 8000 octets

... และความจริง

นั่นคือสิ่งที่มาตรฐานพูด ในความเป็นจริงมีบทความเกี่ยวกับboutell.com (ลิงก์ไปที่การสำรองข้อมูล Internet Archive) ซึ่งกล่าวถึงสิ่งที่เบราว์เซอร์และเซิร์ฟเวอร์ที่ใช้งานจะสนับสนุน บทสรุปผู้บริหารคือ

URL ที่ยาวมากมักจะผิดพลาด URL ที่ยาวเกิน 2,000 ตัวอักษรจะไม่ทำงานในเว็บเบราว์เซอร์ยอดนิยม อย่าใช้มันหากคุณต้องการให้เว็บไซต์ของคุณใช้งานได้สำหรับผู้ใช้อินเทอร์เน็ตส่วนใหญ่

(หมายเหตุ: นี่คือคำพูดจากบทความที่เขียนใน2006แต่ในปี 2015 ของ IE ลดลงหมายถึงการใช้งานอีกต่อไปว่า URL ทำการทำงานส่วนใหญ่อย่างไรก็ตาม IE ยังคงมีข้อ จำกัด ... .)

ข้อ จำกัด ของ Internet Explorer ...

ยาวของ URL สูงสุด IE8 เป็น 2,083 ตัวอักษรและดูเหมือนว่าIE9 มีขีด จำกัด

ฉันทดสอบ IE10 แล้วและแถบที่อยู่จะยอมรับเฉพาะ 2,083 ตัวอักษร คุณสามารถคลิก URL ที่มีความยาวมากกว่านี้ได้ แต่แถบที่อยู่จะยังคงแสดงเพียง 2,083 ตัวอักษรของลิงค์นี้

มีความเป็นwriteup ดีในบล็อก IE Internalsที่ไปในบางส่วนของพื้นหลังนี้

มีรายงานผสม IE11 รองรับ URL ที่ไม่เป็น - ดูความคิดเห็นด้านล่าง เนื่องจากบางคนรายงานปัญหาคำแนะนำทั่วไปยังคงมีอยู่

เครื่องมือค้นหาเช่น URL ที่ <2,048 ตัวอักษร ...

โปรดทราบว่าโปรโตคอล sitemapsซึ่งอนุญาตให้ไซต์แจ้งเครื่องมือค้นหาเกี่ยวกับหน้าที่มีอยู่จะต้องมีอักขระไม่เกิน 2048 อักขระใน URL ถ้าคุณตั้งใจจะใช้แผนผังเว็บไซต์, ขีด จำกัด ได้รับการตัดสินใจสำหรับคุณ! (ดูคำตอบ Calin-อังเดร Burloiu ของด้านล่าง)

นอกจากนี้ยังมีงานวิจัยบางส่วนจาก 2010 เข้าสู่ยาวของ URL สูงสุดที่เครื่องมือค้นหาจะรวบรวมข้อมูลและดัชนี พวกเขาพบว่าขีด จำกัด คือ 2047 ตัวอักษรซึ่งปรากฏขึ้นพร้อมกับข้อกำหนดของโปรโตคอลแผนผังเว็บไซต์ อย่างไรก็ตามพวกเขายังพบว่าเครื่องมือGoogle SERPไม่สามารถรับมือกับ URL ที่ยาวเกิน 1855 ตัวอักษรได้

CDN มีข้อ จำกัด

CDNs ยังกำหนดข้อ จำกัด เกี่ยวกับความยาว URI และจะกลับ414 Too long requestเมื่อมีข้อ จำกัด เหล่านี้จะมาถึงตัวอย่างเช่น:

(เครดิตถึง timrs2998 สำหรับการให้ข้อมูลในความคิดเห็น)

บทสรุปเบราว์เซอร์เพิ่มเติม

ผมทดสอบดังต่อไปนี้กับ Apache 2.4 เซิร์ฟเวอร์การกำหนดค่าที่มีขนาดใหญ่มากLimitRequestLineและLimitRequestFieldSize

Browser     Address bar   document.location
                          or anchor tag
------------------------------------------
Chrome          32779           >64k
Android          8192           >64k
Firefox          >64k           >64k
Safari           >64k           >64k
IE11             2047           5120
Edge 16          2047          10240

ดูคำตอบนี้จาก Matas Vaitkevicius ด้านล่าง

ข้อมูลนี้เป็นปัจจุบันหรือไม่?

นี่เป็นคำถามที่ได้รับความนิยมและเนื่องจากงานวิจัยดั้งเดิมมีอายุประมาณ 12 ปีฉันจะพยายามทำให้เป็นปัจจุบัน: ตั้งแต่เดือนมกราคม 2020คำแนะนำยังคงมีอยู่ แม้ว่า IE11 อาจยอมรับ URL ที่ยาวกว่า แต่ความแพร่หลายของการติดตั้ง IE ที่เก่ากว่ารวมถึงข้อ จำกัด ของเครื่องมือค้นหาหมายถึงการคงอยู่ต่ำกว่า 2,000 ตัวอักษรเป็นนโยบายทั่วไปที่ดีที่สุด


83
โปรดทราบว่า IE11 จะไม่บุ๊คมาร์ค URL ที่นานกว่า 260 ตัวอักษร ฉันไม่แน่ใจว่าขอบมีข้อ จำกัด เหมือนกัน
Brian

10
วันนี้ IE11 ลด URL ของฉันเป็น 2048 ตัวอักษร
AntiCZ

2
คำถามเดิม: "ความยาวสูงสุดของ URL ในเบราว์เซอร์ที่ต่างกันคืออะไร" นี่ไม่ได้ตอบคำถามมันให้สำหรับ IE เท่านั้น ผู้คนสร้างเว็บไซต์เพื่อจุดประสงค์ที่แตกต่างกันเช่นเครื่องมือภายในที่ IE จะไม่สามารถเข้าถึงได้
Skeets

13
ใน Chrome ในปี 2559 ฉันสามารถเปิด url ด้วย 260300 ascii chars โดยใช้คำสั่ง osx open จากสคริปต์ง่าย ๆ และสามารถยืนยันได้ว่าอักขระทั้งหมดถูกส่งผ่านไปยังเซิร์ฟเวอร์ URL ในเบราว์เซอร์ถูกตัดเหลือ 32791 ตัวอักษรสรุปด้วย ... (% E2% 80% A6% E2% 80% A6)
Rob Dawson

22
@Paul Dixon เป็นเรื่องที่ดีมากที่ได้เห็นผู้คนที่เต็มใจจะตอบคำถามในเว็บไซต์นี้ เห็นได้ชัดว่าผู้คนกำลังแสดงความกตัญญูของพวกเขาด้วยจำนวน upvote ปัจจุบันเป็น 3734 แต่ฉันอยากจะบอกว่าขอบคุณ! :)
drognisep

170

URL ที่ยาวที่สุดที่ฉันเจอคือURL ข้อมูล

ตัวอย่าง URL รูปภาพจากผลลัพธ์รูปภาพของ Google (11747 ตัวอักษร)

data:image/jpeg;base64,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

36
เขากำลังพูดถึงข้อเท็จจริงที่ว่า jpeg base64 ที่เข้ารหัสนั้นเป็น URL ทางเทคนิคเพราะมันถูกระบุเป็นข้อมูล: * ในขณะที่เขาถูกต้องในการระบุว่ามันเป็น URL ที่ถูกต้องฉันไม่คิดว่าเป็นสิ่งที่ถามคำถาม
Fitblip

54
... หรือเพียงวางในแถบที่อยู่ของคุณ
Gras Double

108
นั่นคือ URI ไม่ใช่ URL
ไมค์โจนส์

65
เนื่องจาก URL ข้อมูลมีโปรโตคอล "data:" และตัวระบุจึงเป็นทุกสิ่งที่คุณต้องค้นหาว่า "ไฟล์" (แม้ว่า "ระบบไฟล์" จะเป็นพื้นที่ของไฟล์ที่เป็นไปได้ทั้งหมด) ดังนั้นจึงเป็น URL ซึ่งก็คือ URI (แต่ไม่ใช่ "ไม่ใช่ URL")
MickLH

5
@DoubleGras Google Chrome สำหรับ Mac ไม่อนุญาตให้ฉันวาง URL ที่อยู่ในแถบที่อยู่ของฉัน
Max Nanasy

157

WWW คำถามที่พบบ่อย: ความยาวสูงสุดของ URL คืออะไร มีคำตอบของตัวเองขึ้นอยู่กับการทดสอบเชิงประจักษ์และการวิจัย คำตอบสั้น ๆ คือมีอักขระเกิน 2048 ตัวทำให้ Internet Explorer ไม่มีความสุขและนี่คือขีด จำกัด ที่คุณควรใช้ ดูหน้าสำหรับคำตอบยาว ๆ


153

ฉันเขียนการทดสอบนี้เพื่อทำการเพิ่ม'a'พารามิเตอร์ไปเรื่อย ๆ จนกว่าเบราว์เซอร์จะล้มเหลว

ส่วน C #:

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult ParamTest(string x)
{
    ViewBag.TestLength = 0;
    if (!string.IsNullOrEmpty(x))
    {
        System.IO.File.WriteAllLines("c:/result.txt",
                       new[] {Request.UserAgent, x.Length.ToString()});
        ViewBag.TestLength = x.Length + 1;
    }

    return View();
}

ดู:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<script type="text/javascript">
    $(function() {
        var text = "a";
        for (var i = 0; i < parseInt(@ViewBag.TestLength)-1; i++) {
            text += "a";
        }

        document.location.href = "http://localhost:50766/Home/ParamTest?x=" + text;
    });
</script>

ส่วนที่ 1

ใน Chrome ฉันได้รับ:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
2046

จากนั้นจึงเป่าด้วย:

HTTP Error 404.15 - ไม่พบโมดูลการกรองคำขอถูกกำหนดค่าให้ปฏิเสธคำขอที่สตริงการสืบค้นยาวเกินไป

เหมือนกันใน Internet Explorer 8 และ Firefox

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
2046

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
2046

ส่วนที่ 2

ผมไปโหมดง่ายและเพิ่มข้อ จำกัด เพิ่มเติมเพื่อ IISExpress applicationhost.configและการตั้งค่าweb.configmaxQueryStringLength="32768"

Chrome failed with message 'Bad Request - Request Too Long

HTTP Error 400. The size of the request headers is too long.

หลัง 7744 ตัวอักษร

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
7744

ส่วนที่ 3

ที่เพิ่ม

<headerLimits>
    <add header="Content-type" sizeLimit="32768" />
</headerLimits>

ซึ่งไม่ได้ช่วยอะไรเลย ในที่สุดฉันก็ตัดสินใจใช้พู้ทำเล่นเพื่อลบผู้อ้างอิงออกจากส่วนหัว

static function OnBeforeRequest(oSession: Session) {
    if (oSession.url.Contains("localhost:50766")) {
        oSession.RequestHeaders.Remove("Referer");
    }

ซึ่งทำได้ดีมาก

Chrome: สูงถึง 15613 ตัวอักษร (ฉันเดาว่ามันเป็นขีด จำกัด 16K สำหรับ IIS)

และมันก็ล้มเหลวอีกครั้งด้วย:

<BODY><h2>Bad Request - Request Too Long</h2>
<hr><p>HTTP Error 400. The size of the request headers is too long.</p>


Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
15613

Firefox:

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
15708

Internet Explorer 8ล้มเหลวด้วย iexplore.exe crashing

ป้อนคำอธิบายภาพที่นี่

หลังปี 2505

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
2505

Android Emulator

Mozilla/5.0 (Linux; Android 5.1; Android SDK built for x86 Build/LKY45) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36
7377

Internet Explorer 11

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
4043

Internet Explorer 10

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
4043

Internet Explorer 9

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
4043

ดังนั้นสมมติฐานของฉันที่มี 512 ตัวอักษรนั้นผิดมาก ^ _ ^ ขอบคุณสำหรับการทดสอบ ฉันจะไม่สนใจความยาวของพารามิเตอร์อีกต่อไป ..
โกกอล

17
นี่ควรเป็นคำตอบที่ยอมรับได้ ... คำตอบแรกไม่ได้ให้ขีด จำกัด ที่ยากสำหรับแต่ละเบราว์เซอร์ซึ่งเป็นคำถามที่ถาม
GrayedFox

1
อาจจะคุ้มค่าที่จะดูใน Safari ด้วย Safari เป็นเบราว์เซอร์เดียวที่ไม่รองรับการดาวน์โหลดที่สร้างขึ้นโดยลูกค้า วิธีแก้ไขปัญหาคือ: a) เปิด BLOB URI (URI สั้น ๆ สั้น ๆ ที่ชี้ไปยัง Blob ในหน่วยความจำ) ในหน้าต่างใหม่ b) เปิด URI ที่เข้ารหัส 64 ฐานข้อมูลในหน้าต่างใหม่ (อาจยาวมาก แต่รองรับการพิมพ์ mime) รายละเอียดที่นี่: github.com/eligrey/FileSaver.js/issues/12
Mat Gessel

@Vaitkevicius ทราบหรือไม่ว่าช่องว่าง (% 20) ถูกนับเป็นหนึ่งอักขระหรือ 3
Jun711

1
@Jun ขึ้นอยู่กับว่า ... กด F12 และวางต่อไปนี้ในคอนโซลconsole.log("%20".length +" "+decodeURI("%20").length)นี้ควรอธิบาย
Matas Vaitkevicius

96

ไม่มีความยาว URL สูงสุดสากลจริงๆ ความยาวสูงสุดถูกกำหนดโดยสิ่งที่เบราว์เซอร์ไคลเอนต์เลือกที่จะสนับสนุนซึ่งแตกต่างกันอย่างมาก ขีด จำกัด 2,083 จะปรากฏเฉพาะใน Internet Explorer (ทุกรุ่นจนถึง 7.0) ความยาวสูงสุดใน Firefox และ Safari นั้นไม่ จำกัด แม้ว่าจะมีความไม่แน่นอนเกิดขึ้นกับ URL ที่มีความยาว 65,000 อักขระ Opera ดูเหมือนจะไม่มีความยาว URL สูงสุด แต่อย่างใดและจะไม่เกิดความไม่เสถียรที่ความยาวที่ยาวมาก ๆ


8
ถ้าความไม่เสถียรอยู่ที่ 65k มันน่าจะอยู่ใกล้กับ 65535 (2 ^ 16 - 1) พวกเขาอาจวนรอบตัวอักษรโดยใช้ short i ไหม แค่ความคิด ฉันสงสัยว่า URL ใดที่พวกเขาทดสอบด้วย 65k + o_o ;;
Garet Claborn

5
คำตอบนี้อาจเป็นคำตอบที่ควรยอมรับเนื่องจากมีคำตอบที่เป็นรูปธรรม: 2k สำหรับ IE, 65k สำหรับ Safari / Firefox "more" สำหรับ Opera
eis

ฉันอยากรู้. 65k URL เป็นชุดข้อมูล URI หรือเป็น URL ในความหมายดั้งเดิมหรือไม่
SaAtomic

81

บนแพลตฟอร์มของ Apple (iOS / macOS / tvOS / watchOS) ขีด จำกัด อาจเป็นรูปแบบ URL ยาว2 GBตามที่เห็นโดยความคิดเห็นนี้ในซอร์สโค้ดของ Swift :

// Make sure the URL string isn't too long.
// We're limiting it to 2GB for backwards compatibility with 32-bit executables using NS/CFURL
if ( (urlStringLength > 0) && (urlStringLength <= INT_MAX) )
{
...

บน iOS ฉันได้ทดสอบและยืนยันว่าแม้จะยอมรับ URL ที่ยาวกว่า 300+ MB คุณสามารถลอง URL ที่มีขนาดยาวเช่นนี้ใน Objective-C:

NSString *path = [@"a:" stringByPaddingToLength:314572800 withString:@"a" startingAtIndex:0];
NSString *js = [NSString stringWithFormat:@"window.location.href = \"%@\";", path];
[self.webView stringByEvaluatingJavaScriptFromString:js];

และจับถ้ามันประสบความสำเร็จด้วย:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSLog(@"length: %@", @(request.URL.absoluteString.length));
    return YES;
}

74
คุณสมควรได้รับ +1 เพียงพยายาม URL 300MB
59

3
iOS ไม่ใช่เบราว์เซอร์ในตัวมันเอง นี่คือใน Safari สำหรับ iOS หรือไม่
Randall

6
รูปแบบ @Randall ได้รับการจัดการโดยระบบปฏิบัติการและส่งไปยังแอปที่สามารถเปิด ดังนั้นแอพทั้งหมดบน iOS รวมถึง Safari จึงสามารถจัดการ URI ได้ยาวนาน
Cœur

1
ขอขอบคุณสำหรับการชี้แจง. ถึงแม้ว่าสันนิษฐานว่านี่จะไม่ป้องกันแอปตามอำเภอใจ (เช่นเบราว์เซอร์ Tor-powered) จากการแนะนำการจำกัดความยาวของตัวเองใช่ไหม
Randall

1
@Randall ต้อง แต่ทำไมทุกคนจะทำอย่างนั้น ...
แซนเดอ

70

URI RFC (ซึ่ง URL ที่เป็นส่วนย่อย) ไม่ได้กำหนดความยาวสูงสุด แต่ก็ไม่แนะนำว่าส่วนชื่อโฮสต์ของ URI (ถ้ามี) ไม่เกิน 255 ตัวอักษรความยาว:

ผู้ผลิต URI ควรใช้ชื่อที่สอดคล้องกับไวยากรณ์ DNS แม้ว่าจะไม่ปรากฏในการใช้ DNS ทันทีและควร จำกัด ชื่อเหล่านี้ไม่เกิน 255 อักขระที่มีความยาว

ตามที่ระบุไว้ในโพสต์อื่น ๆ แม้ว่าบางเบราว์เซอร์มีข้อ จำกัด ในทางปฏิบัติเกี่ยวกับความยาวของ URL


55

HTTP 1.1พูดว่า:

URIs ใน HTTP สามารถแสดงในรูปแบบสัมบูรณ์หรือสัมพันธ์กับ
URI ฐานที่รู้จัก [11] ขึ้นอยู่กับบริบทของการใช้งาน
รูปแบบทั้งสองนั้นมีความแตกต่างจากข้อเท็จจริงที่ว่า URI สัมบูรณ์จะขึ้นต้น
ด้วยชื่อแบบแผนตามด้วยโคลอน สำหรับข้อมูลที่ชัดเจนเกี่ยวกับ
ไวยากรณ์ URL และซีแมนทิกส์ดูที่ "Uniform Resource Identifiers (URI): ไวยากรณ์และความหมายทั่วไป" RFC 2396 [42] (ซึ่งแทนที่ RFCs 1738 [4] และ RFC 1808 [11] ข้อกำหนดนี้ใช้คำจำกัดความของ "การอ้างอิง URI", "สัมบูรณ์", "ญาติ", "พอร์ต",
"โฮสต์", "abs_path", "rel_path" และ "สิทธิ" จาก
ข้อกำหนดนั้น

โพรโทคอล HTTP ไม่ได้กำหนดข้อ จำกัด ใด ๆ กับความยาวของ
URI เซิร์ฟเวอร์จะต้องสามารถจัดการ URI ของทรัพยากรใด ๆ ที่พวกเขาให้บริการและควรจะสามารถจัดการ URIs ของความยาวไม่ได้ จำกัด หากพวกเขาให้รูปแบบที่ใช้ GET ที่สามารถสร้าง URIs ดังกล่าว *
เซิร์ฟเวอร์ SHOULD กลับ 414 (Request-URI ยาวเกินไป) สถานะถ้า URI ยาวเกินกว่าที่เซิร์ฟเวอร์สามารถจัดการได้ (ดูหัวข้อ 10.4.15)

หมายเหตุ: เซิร์ฟเวอร์ควรระมัดระวังเกี่ยวกับความยาวของ URI มากกว่า 255 ไบต์เนื่องจากไคลเอนต์หรือพร็อกซีที่เก่ากว่าบางตัวอาจไม่รองรับความยาวเหล่านี้อย่างเหมาะสม

ตามที่กล่าวถึงโดย @Brian ไคลเอนต์ HTTP (เช่นเบราว์เซอร์) อาจมีข้อ จำกัด ของตนเองและเซิร์ฟเวอร์ HTTP จะมีขีด จำกัด ที่แตกต่างกัน



39

ในURL ตาม UI Jakob Nielsen แนะนำ:

อินเทอร์เฟซโซเชียลกับเว็บอาศัยอีเมลเมื่อผู้ใช้ต้องการแนะนำหน้าเว็บให้กันและกันและอีเมลเป็นวิธีที่ผู้ใช้ทั่วไปเข้ามาที่ไซต์ใหม่เป็นอันดับสอง (เครื่องมือค้นหาที่พบบ่อยที่สุด): ตรวจสอบให้แน่ใจว่า URL ทั้งหมดใน ไซต์มีความยาวน้อยกว่า 78 อักขระเพื่อไม่ให้มีการตัดบรรทัดฟีด

นี่ไม่ใช่จำนวนสูงสุด แต่ฉันคิดว่านี่เป็นประโยชน์สูงสุดหากคุณต้องการแบ่งปัน URL ของคุณ


3
ฉันสงสัยว่า "78" มาจากไหน อาจเป็นบทความต้นฉบับ 1999 ที่เขียนภายใต้สมมติฐานที่ว่าผู้คนกำลังอ่านอีเมลของพวกเขาในหน้าต่างเทอร์มินัล 80x24? ยังแนะนำดี!
Jon Schneider

3
ดี. ไอบีเอ็มการ์ดเจาะเป็น 80 คอลัมน์ ด้วยอักขระสองตัวที่ถ่ายโดยการขึ้นบรรทัดใหม่และการป้อนบรรทัดคุณจะได้รับ 78
พอลมอร์แกน

1
ฮ่าฮ่า :-) จริง ๆ แล้วฉันกำลังพิจารณาการอ้างอิงจอภาพ CGA 80x25 ยุค 1981 ในความคิดเห็นของฉัน แต่คุณกลับมาถึงอีก! ... ฉันไม่ได้อยู่ในยุคของบัตรชกต่อย แต่พวกมันมีขนาด 80 ไบต์หรือ 80 บิตเท่านั้น?
Jon Schneider

1
ไม่ตรงกับไบต์ (8 บิต) มันเข้ารหัสอักขระหนึ่งตัวในแต่ละคอลัมน์
พอลมอร์แกน

3
@JonSchneider - 78 เป็นที่เฉพาะเจาะจงมากและอาจเกี่ยวข้องกับการอ่านของข้อความ (จากมุมมองของการใช้งานที่กำหนดพื้นหลังของนีลเซ่น) ซึ่งเป็นที่ดีที่สุดระหว่าง50-60 และสูงสุดของ 75
Jay Rainey

36

โปรโตคอล Sitemapsซึ่งเป็นวิธีที่เว็บมาสเตอร์แจ้งเครื่องมือค้นหาเกี่ยวกับหน้าต่างๆในเว็บไซต์ของตน (Google ใช้ในเครื่องมือของผู้ดูแลเว็บด้วย) สนับสนุน URL ที่มีความยาวน้อยกว่า 2048 ตัวอักษร ดังนั้นหากคุณวางแผนที่จะใช้คุณสมบัตินี้สำหรับการเพิ่มประสิทธิภาพกลไกค้นหาให้พิจารณาสิ่งนี้


นี่เป็นความสับสนเล็กน้อย โปรโตคอล Sitemap "รองรับ URL ที่มีความยาวน้อยกว่า 2048 อักขระ" ฉันจินตนาการถึงเว็บไซต์อย่าง example.com จะใช้งานได้ ฉันคิดว่าคำถามนี้เกี่ยวกับจำนวนสูงสุดหรือไม่
HoldOffHunger

19

บริการการรายงาน ASP.NET 2 และ SQL Server 2005 มีข้อ จำกัด ในปี 2028 ฉันพบสิ่งนี้ยากที่ตัวสร้าง URL แบบไดนามิกของฉันจะไม่ส่งผ่านพารามิเตอร์บางตัวไปยังรายงานนอกเหนือจากจุดนั้น สิ่งนี้อยู่ภายใต้ Internet Explorer 8


18

เหตุใด Internet Explorer จึง จำกัด เพียง 2K ในขณะที่ IIS มีขีด จำกัด ที่ 16K ฉันไม่คิดว่ามันสมเหตุสมผล

ดังนั้นฉันต้องการเริ่มการทดสอบเกี่ยวกับการ จำกัด ขนาด URL ของ Ajax

ฉันได้ตั้ง maxHttpHeaderSize = "1048576" ตัวเชื่อมต่อ Tomcat HTTP แล้ว และเตรียม URL ที่ยาวมาก ๆ

จากนั้นฉันจะส่งคำขอด้วย URL แบบยาวดังต่อไปนี้:

var url="/ajax/url-length.jsp";
jQuery.ajax(url,{data:{q:"0".repeat(1048000-url.length-4)}});

ทำรายงาน jQuery เรียบร้อยแล้ว Tomcat รายงานว่า URL ที่ร้องขอคือ 1048015 ไบต์ มีการทดสอบกับ Chrome 50 และ Internet Explorer 11

ดังนั้นเว็บเบราว์เซอร์จะไม่ตัดหรือ จำกัด URL ของคุณอย่างตั้งใจเมื่อส่งคำขอ Ajax


4
ความแตกต่างระหว่าง Internet Explorer และ IIS นั้นสมเหตุสมผลเมื่อคุณพิจารณาว่าคำขอทั้งหมดไปยังเว็บเซิร์ฟเวอร์ไม่ได้ทำผ่านเบราว์เซอร์
TroySteven

15

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

เนื่องจากมีการส่งพารามิเตอร์ทั้งหมดในบรรทัด URL รายการที่อยู่ในรหัสผ่านของเขตข้อมูลที่ซ่อนจะแสดงใน URL แน่นอน ไม่ควรใช้มือถือสำหรับมาตรการรักษาความปลอดภัยที่แท้จริงและควรพิจารณาถึงความปลอดภัยของเครื่องสำอางที่ดีที่สุด


11

ฉันมีประสบการณ์กับ SharePoint 2007, 2010 และมีการจำกัดความยาวของ URL ที่คุณสามารถสร้างได้จากฝั่งเซิร์ฟเวอร์ในกรณีนี้ SharePoint ดังนั้นจึงขึ้นอยู่กับ 1) ไคลเอนต์ (เบราว์เซอร์รุ่นและระบบปฏิบัติการ) และ 2) เทคโนโลยีเซิร์ฟเวอร์, IIS, Apache, ฯลฯ


1
เนื่องจาก SharePoint เปิดเผย URL ของเว็บเป็นพา ธ ไฟล์จึงมีข้อ จำกัด แยกต่างหาก: ขีดจำกัดความยาวพา ธ ไฟล์ของ Windows ที่ 260 อักขระ (หรือ 248 ตัวอักษรเมื่อใช้ API) สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับขีด จำกัด นี้โปรดดูส่วน "ข้อจำกัดความยาวเส้นทางสูงสุด" ที่นี่: msdn.microsoft.com/en-us/library/aa365247(VS.85.85 ).aspx
Thriggle

10

ดูเหมือนว่าอย่างน้อย Chrome ก็เพิ่มขีด จำกัด นี้แล้ว ฉันวาง 20,000 อักขระลงใน bookmarklet และใช้


1

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

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