Độ dài tối đa của một URL trong các trình duyệt khác nhau là bao nhiêu?


4841

Độ dài tối đa của một URL trong các trình duyệt khác nhau là bao nhiêu? Nó có khác nhau giữa các trình duyệt không?

Giao thức HTTP có ra lệnh không?


38
FWIW, đối với người dùng Windows, các đường dẫn máy chủ vượt quá 250 ký tự có thể gây đau buồn khi xây dựng URL, ví dụ, hãy xem httpContext.Cản.Server.MapPath không thành công cho tên tệp dài tại forum.asp.net . dòng dưới cùng: nếu một hạn chế không có được bạn, một hạn chế khác có thể .
gerryLowry

21
Từ support.microsoft.com/kb/208427 "Độ dài URL tối đa là 2.083 ký tự trong Internet Explorer"
gavenkoa

9
Tôi có thể hỏi tại sao bạn cần biết điều đó? Tức là trường hợp sử dụng để có một URL dài?
o0 '.

17
@Lohoris: Nếu một biểu mẫu sử dụng getchứ không phải post, thì việc đánh dấu trang đạt được bởi biểu mẫu đã điền sẽ nắm bắt thông tin đã nhập. Trong một số trường hợp, điều đó có thể xấu, nhưng trong những trường hợp khác nó có thể hữu ích. Tuy nhiên, để làm việc đó, trình duyệt phải có khả năng xử lý một URL chứa tất cả thông tin.
supercat

4
@Lohoris Khi chúng tôi viết các trang để tạo báo cáo, chúng tôi đã sử dụng một biểu mẫu tiêu chí. Nó hữu ích trên một số báo cáo để có thể gửi email url cho ai đó với các tiêu chí được xây dựng. Tùy thuộc vào báo cáo, đôi khi chúng tôi buộc phải sử dụng posthoặc tiêu chí bị cắt ngắn. Chỉ là một trường hợp sử dụng khác.
buzzsawddog

Câu trả lời:


4956

Câu trả lời ngắn - giới hạn thực tế là 2000 ký tự

Nếu bạn giữ URL dưới 2000 ký tự, chúng sẽ hoạt động trong hầu hết mọi phần mềm máy khách và máy chủ.

Nếu bạn đang nhắm mục tiêu các trình duyệt cụ thể, xem bên dưới để biết thêm chi tiết giới hạn cụ thể.

Câu trả lời dài hơn - đầu tiên, các tiêu chuẩn ...

RFC 2616 (Giao thức truyền siêu văn bản HTTP / 1.1) phần 3.2.1 cho biết

Giao thức HTTP không đặt bất kỳ giới hạn tiên nghiệm nào về độ dài của URI. Máy chủ PHẢI có thể xử lý URI của bất kỳ tài nguyên nào chúng phục vụ và NÊN có thể xử lý các URI có độ dài không giới hạn nếu chúng cung cấp các biểu mẫu dựa trên GET có thể tạo ra các URI đó. Máy chủ NÊN trả về trạng thái 414 (URI yêu cầu quá dài) nếu URI dài hơn máy chủ có thể xử lý (xem phần 10.4.15).

RFC đó đã bị RFC7230 lỗi thời , đây là một bản làm mới của đặc tả HTTP / 1.1. Nó chứa ngôn ngữ tương tự, nhưng cũng tiếp tục gợi ý điều này:

Nhiều hạn chế ad hoc khác nhau về độ dài dòng yêu cầu được tìm thấy trong thực tế. Điều được khuyến nghị là tất cả người gửi và người nhận HTTP đều hỗ trợ, ở mức tối thiểu, độ dài dòng yêu cầu là 8000 octet.

... và thực tế

Đó là những gì các tiêu chuẩn nói. Trong thực tế , có một bài viết trên boutell.com (liên kết đến bản sao lưu Lưu trữ Internet) đã thảo luận về những gì trình duyệt cá nhân và trình duyệt sẽ hỗ trợ. Tóm tắt điều hành là:

Các URL cực dài thường là một sai lầm. Các URL trên 2.000 ký tự sẽ không hoạt động trong các trình duyệt web phổ biến nhất. Không sử dụng chúng nếu bạn dự định trang web của bạn sẽ hoạt động cho phần lớn người dùng Internet.

(Lưu ý: đây là một trích dẫn từ một bài báo viết bằng 2006 , nhưng vào năm 2015 giảm phương tiện sử dụng IE rằng URL còn làm việc cho phần lớn Tuy nhiên, IE vẫn có giới hạn ....)

Những hạn chế của Internet Explorer ...

Độ dài URL tối đa của IE8 là 2083 ký tự và có vẻ như IE9 có giới hạn tương tự .

Tôi đã thử IE10 và thanh địa chỉ sẽ chỉ chấp nhận 2083 ký tự. Bạn có thể nhấp vào một URL dài hơn URL này, nhưng thanh địa chỉ sẽ vẫn chỉ hiển thị 2083 ký tự của liên kết này.

Có một bài viết hay trên blog IE Internals đi sâu vào một số nền tảng của vấn đề này.

Có các báo cáo hỗn hợp IE11 hỗ trợ URLS dài hơn - xem bình luận bên dưới. Cho một số người báo cáo vấn đề, lời khuyên chung vẫn còn.

Các công cụ tìm kiếm như URL <2048 ký tự ...

Xin lưu ý rằng giao thức sơ đồ trang web , cho phép một trang web thông báo cho các công cụ tìm kiếm về các trang có sẵn, có giới hạn 2048 ký tự trong một URL. Nếu bạn có ý định sử dụng sơ đồ trang web, một giới hạn đã được quyết định cho bạn! (xem câu trả lời của Calin-Andrei Burloiu bên dưới)

Cũng có một số nghiên cứu từ năm 2010 về độ dài URL tối đa mà các công cụ tìm kiếm sẽ thu thập dữ liệu và lập chỉ mục . Họ tìm thấy giới hạn là 2047 ký tự, xuất hiện liên minh với thông số giao thức sơ đồ trang web. Tuy nhiên, họ cũng tìm thấy công cụ Google SERP sẽ không đối phó với các URL dài hơn 1855 ký tự.

CDN có giới hạn

CDN cũng áp đặt các giới hạn về độ dài URI và sẽ trả về 414 Too long requestkhi đạt đến các giới hạn này, ví dụ:

(ghi có vào timrs2998 để cung cấp thông tin đó trong các bình luận)

Bổ sung trình duyệt

Tôi đã thử nghiệm các điều sau với máy chủ Apache 2.4 được cấu hình với LimitRequestLineLimitRequestFieldSize rất lớn .

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

Xem thêm câu trả lời này từ Matas Vaitkevicius dưới đây.

Thông tin này có được cập nhật không?

Đây là một câu hỏi phổ biến và vì nghiên cứu ban đầu là ~ 12 tuổi, tôi sẽ cố gắng cập nhật nó: Kể từ tháng 1 năm 2020 , lời khuyên vẫn còn tồn tại. Mặc dù IE11 có thể chấp nhận các URL dài hơn, nhưng tính phổ biến của các cài đặt IE cũ hơn cộng với các giới hạn của công cụ tìm kiếm có nghĩa là ở dưới 2000 ký tự là chính sách chung tốt nhất.


83
Lưu ý rằng IE11 sẽ không đánh dấu URL dài hơn 260 ký tự . Tôi không chắc nếu Edge có cùng giới hạn.
Brian

10
Hôm nay IE11 cắt URL của tôi xuống 2048 ký tự.
AntiCZ

2
Câu hỏi gốc: "Độ dài tối đa của URL trong các trình duyệt khác nhau là bao nhiêu ". Điều này không trả lời câu hỏi, nó chỉ cung cấp cho IE. Mọi người tạo các trang web cho các mục đích khác nhau, ví dụ như các công cụ nội bộ KHÔNG BAO GIỜ được IE truy cập.
Xiên

13
trong Chrome năm 2016, tôi đã có thể mở một url bằng 260300 ký tự ascii bằng lệnh mở osx từ một tập lệnh đơn giản và có thể xác nhận rằng tất cả các ký tự được chuyển qua máy chủ. Url trong trình duyệt bị cắt ngắn thành 32791 ký tự, kết thúc bằng ... (% E2% 80% A6% E2% 80% A6)
Rob Dawson

22
@Paul Dixon Thật tuyệt khi thấy những người sẵn sàng vượt lên trên và trả lời các câu hỏi trên trang web này. Rõ ràng mọi người đang thể hiện lòng biết ơn của họ với số lượng upvote hiện tại là 3734, nhưng tôi muốn nói lời cảm ơn! :)
drognisep

170

Các URL dài nhất tôi gặp là các URL dữ liệu

URL hình ảnh ví dụ từ kết quả hình ảnh của Google (11747 ký tự)

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

36
Anh ấy đang nói về thực tế rằng một jpeg được mã hóa base64 về mặt kỹ thuật là một URL, bởi vì nó được chỉ định là dữ liệu: *. Mặc dù anh ấy đúng khi nói rằng đó là một URL hợp lệ, tôi không nghĩ đó là câu hỏi đang hỏi.
Fitblip

54
... Hoặc chỉ dán nó vào thanh địa chỉ của bạn.
Gras Double

108
Đó là một URI không phải là một URL.
mike jones

65
Vì URL dữ liệu chứa giao thức "data:" và mã định danh, nên đó là tất cả mọi thứ bạn cần để xác định "tệp" đó (ngay cả khi "Hệ thống tệp" là không gian của tất cả các tệp có thể). Do đó, nó là một URL, cũng là một URI. (Nhưng chắc chắn không phải "không phải là URL")
MickLH

5
@DoubleGras Google Chrome cho Mac không cho phép tôi dán một URL dài vào thanh địa chỉ của mình
Max Nanasy


153

Tôi đã viết bài kiểm tra này tiếp tục thêm 'a'vào tham số cho đến khi trình duyệt bị lỗi

Phần 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();
}

Lượt xem:

<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>

PHẦN 1

Trên Chrome tôi có:

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

Sau đó nó nổ tung với:

Lỗi HTTP 404.15 - Không tìm thấy Mô-đun lọc yêu cầu được định cấu hình để từ chối yêu cầu trong đó chuỗi truy vấn quá dài.

Tương tự trên Internet Explorer 8 và 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

PHẦN 2

Tôi đã chuyển sang chế độ dễ dàng và thêm các giới hạn bổ sung cho IISExpress applicationhost.configweb.configcài đặt maxQueryStringLength="32768".

Chrome failed with message 'Bad Request - Request Too Long

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

sau 7744 ký tự.

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

PHẦN 3

Thêm

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

mà không giúp được gì cả Cuối cùng tôi đã quyết định sử dụng fiddler để loại bỏ người giới thiệu khỏi tiêu đề.

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

Mà đã làm độc đáo.

Trình duyệt Chrome: có tới 15613 ký tự. (Tôi đoán đó là giới hạn 16K cho IIS)

Và nó lại thất bại với:

<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 không thành công với iexplore.exe bị sập.

Nhập mô tả hình ảnh ở đây

Sau 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

Trình giả lập Android

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

Vì vậy, trong thực tế, giả định 512 ký tự của tôi phần lớn là sai ^ _ ^ Cảm ơn bạn đã kiểm tra. Tôi sẽ không bao giờ quan tâm đến độ dài thông số truy vấn nữa ..
Gogol

17
Đây phải là câu trả lời được chấp nhận ... câu hỏi đầu tiên không thực sự cung cấp giới hạn cứng cho mỗi trình duyệt, đó là những gì câu hỏi yêu cầu.
GrayedFox

1
Có thể đáng để nhìn vào Safari quá. Safari là trình duyệt duy nhất không hỗ trợ tải xuống do khách hàng tạo. Cách giải quyết là: a) mở URI BLOB (một URI ngắn, tạm thời trỏ đến Blob trong bộ nhớ) trong một cửa sổ mới, b) mở URI dữ liệu được mã hóa cơ sở 64 trong một cửa sổ mới (có thể rất dài, nhưng hỗ trợ gõ mime). Chi tiết tại đây: github.com/eligrey/FileSaver.js/issues/12
Mat Gessel

@Vaitkevicius bạn có biết một khoảng trắng (% 20) được tính là một ký tự hay 3 không?
Jun711

1
@Jun phụ thuộc vào nơi ... nhấn F12 và dán theo sau vào bảng điều khiển, điều console.log("%20".length +" "+decodeURI("%20").length)này sẽ giải thích điều đó
Matas Vaitkevicius

96

Thực sự không có độ dài URL tối đa phổ quát. Độ dài tối đa chỉ được xác định bởi những gì trình duyệt máy khách chọn để hỗ trợ, mức độ khác nhau rất lớn. Giới hạn 2.083 chỉ có trong Internet Explorer (tất cả các phiên bản lên tới 7.0). Độ dài tối đa trong Firefox và Safari dường như là không giới hạn, mặc dù sự không ổn định xảy ra với các URL đạt khoảng 65.000 ký tự. Opera dường như không có độ dài URL tối đa nào và không bị mất ổn định ở độ dài cực kỳ dài.


8
Nếu độ không ổn định khoảng 65k thì có lẽ nó ở ngay gần 65535 (2 ^ 16 - 1). Có lẽ họ lặp qua ký tự bằng cách sử dụng i ngắn? Chỉ là một ý nghĩ. Tôi tự hỏi URL nào họ đã kiểm tra với giá 65k + o_o ;;
Garet Claborn

5
Câu trả lời này có lẽ là câu trả lời nên được chấp nhận, vì nó cung cấp câu trả lời cụ thể: 2k cho IE, 65k cho Safari / Firefox, "thêm" cho Opera.
eis

Tôi tò mò. URL 65k là URI lược đồ dữ liệu hay thực sự là URL theo nghĩa cổ điển?
SaAtomic

81

Trên các nền tảng của Apple (iOS / macOS / tvOS / watchOS), giới hạn có thể là lược đồ URL dài 2 GB , như nhận xét này trong mã nguồn của 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) )
{
...

Trên iOS, tôi đã kiểm tra và xác nhận rằng thậm chí URL dài hơn 300 MB được chấp nhận. Bạn có thể thử một URL dài như thế này trong Objective-C:

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

Và bắt nếu nó thành công với:

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

74
Bạn ạ, bạn xứng đáng được +1 chỉ vì nỗ lực thử một URL 300 MB
Tôi được yêu cầu vào

3
Bản thân iOS không phải là một trình duyệt. Đây có phải trong Safari cho iOS không?
Randall

6
Các lược đồ @Randall được HĐH xử lý và sau đó được gửi đến ứng dụng có thể mở chúng. Vì vậy, tất cả các ứng dụng trên iOS, bao gồm Safari, có thể xử lý URI dài.
Cœur

1
Cảm ơn bạn đã làm rõ. Tuy nhiên, có lẽ điều này không ngăn cản một ứng dụng tùy ý (ví dụ: trình duyệt hỗ trợ Tor) giới thiệu giới hạn độ dài của chính nó, đúng không?
Randall

1
@ Trả lời đúng nhưng tại sao mọi người lại làm vậy ...
Xander

70

Các URI RFC (trong đó URL là một tập hợp con) không xác định chiều dài tối đa, tuy nhiên, nó khuyên rằng phần hostname của URI (nếu có) không được vượt quá 255 ký tự:

Các nhà sản xuất URI nên sử dụng các tên phù hợp với cú pháp DNS, ngay cả khi việc sử dụng DNS không rõ ràng ngay lập tức và nên giới hạn các tên này có độ dài không quá 255 ký tự.

Như đã lưu ý trong các bài đăng khác, một số trình duyệt có giới hạn thực tế về độ dài của URL.


55

Đặc tả HTTP 1.1 cho biết:

Các URI trong HTTP có thể được biểu diễn dưới dạng tuyệt đối hoặc liên quan đến một số
URI cơ sở đã biết [11], tùy thuộc vào bối cảnh sử dụng của chúng. Hai
hình thức được phân biệt bởi thực tế là các URI tuyệt đối luôn bắt đầu
bằng một tên lược đồ theo sau là dấu hai chấm. Để biết thông tin chính xác về
cú pháp và ngữ nghĩa URL, hãy xem "Số nhận dạng tài nguyên đồng nhất (URI): Cú pháp chung và ngữ nghĩa", RFC 2396 [42] (thay thế RFC 1738 [4] và RFC 1808 [11]). Thông số kỹ thuật này thông qua các định nghĩa về "tham chiếu URI
", "perfectURI", " tương đối", "cổng", "máy chủ", "abs_path", "rel_path" và "thẩm quyền" từ
thông số kỹ thuật đó .

Giao thức HTTP không đặt bất kỳ giới hạn tiên nghiệm nào về độ dài của
URI. Máy chủ PHẢI có thể xử lý URI của bất kỳ tài nguyên nào chúng phục vụ và NÊN có thể xử lý các URI có độ dài không giới hạn nếu chúng cung cấp các biểu mẫu dựa trên GET có thể tạo ra các URI đó. *
Máy chủ NÊN trả về 414 (URI yêu cầu quá dài) trạng thái nếu một URI dài hơn máy chủ có thể xử lý (xem phần 10.4.15).

Lưu ý: Máy chủ phải thận trọng tùy thuộc vào độ dài URI trên 255 byte, bởi vì một số triển khai máy khách hoặc proxy cũ hơn có thể không hỗ trợ chính xác các độ dài này.

Như @Brian đã đề cập, các máy khách HTTP (ví dụ: trình duyệt) có thể có giới hạn riêng và máy chủ HTTP sẽ có các giới hạn khác nhau.



39

Trong URL như UI Jakob Nielsen khuyến nghị:

giao diện xã hội với Web dựa trên email khi người dùng muốn giới thiệu các trang web với nhau và email là cách phổ biến thứ hai mà người dùng truy cập vào các trang web mới (công cụ tìm kiếm là phổ biến nhất): đảm bảo rằng tất cả các URL trên của bạn trang web dài dưới 78 ký tự để chúng không nằm trên một nguồn cấp dữ liệu.

Đây không phải là mức tối đa nhưng tôi coi đây là mức tối đa thực tế nếu bạn muốn URL của mình được chia sẻ.


3
Tôi tự hỏi "78" đến từ đâu? Có lẽ bài báo gốc năm 1999 được viết theo giả định rằng mọi người đang đọc email của họ trong các cửa sổ đầu cuối 80x24? Tuy nhiên, lời khuyên tốt!
Jon Schneider

3
Tốt. Thẻ đục lỗ của IBM cũng là 80 cột. Với hai nhân vật được đưa lên bởi một chiếc xe ngựa và một nguồn cấp dữ liệu bạn nhận được 78.
Paul Morgan

1
Haha. :-) Tôi thực sự đã xem xét việc tham khảo các màn hình CGA 80x25 thời đại 1981 trong nhận xét của tôi, nhưng bạn đã đạt được nhiều hơn nữa! ... Tôi đã không ở trong kỷ nguyên thẻ đục lỗ, nhưng chúng có chiều rộng 80 byte hay chỉ 80 bit?
Jon Schneider

1
Không chính xác một byte (8 bit). Nó mã hóa một ký tự trong mỗi cột.
Paul Morgan

3
@JonSchneider - 78 khá cụ thể và có thể liên quan đến khả năng đọc văn bản (từ góc độ khả năng sử dụng dựa trên nền tảng của Nielsen), tốt nhất trong khoảng từ 50-60 và tối đa là 75 .
Jay Rainey

36

Giao thức sơ đồ trang web , là cách để quản trị viên web thông báo cho các công cụ tìm kiếm về các trang trên trang web của họ (cũng được Google sử dụng trong Công cụ quản trị trang web), hỗ trợ các URL có ít hơn 2048 ký tự. Vì vậy, nếu bạn đang có kế hoạch sử dụng tính năng này cho Công cụ Tìm kiếm Tối ưu hóa, hãy tính đến điều này.


Điều này hơi khó hiểu. Giao thức sơ đồ trang web "hỗ trợ các URL có ít hơn 2048 ký tự." Tôi tưởng tượng một trang web như example.com sẽ hoạt động. Tôi nghĩ rằng câu hỏi này là nhiều hơn về tối đa?
Hold OfferHunger

19

Dịch vụ báo cáo ASP.NET 2 và SQL Server 2005 có giới hạn là 2028. Tôi đã tìm ra điều này một cách khó khăn, nơi trình tạo URL động của tôi sẽ không chuyển một số tham số cho báo cáo vượt quá điểm đó. Đây là dưới Internet Explorer 8.


18

Tại sao Internet Explorer chỉ giới hạn 2K trong khi IIS có giới hạn 16K? Tôi không nghĩ nó có ý nghĩa.

Vì vậy, tôi muốn bắt đầu một thử nghiệm về giới hạn kích thước URL yêu cầu Ajax.

Tôi đã đặt maxHttpHeaderSize = "1048576" của trình kết nối Tomcat của tôi. Và chuẩn bị một URL rất dài.

Sau đó, tôi gửi một yêu cầu với URL dài như sau:

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

Báo cáo jQuery đã xong. Tomcat báo cáo URL được yêu cầu là 1048015 byte. Nó đã được thử nghiệm với Chrome 50 và Internet Explorer 11.

Vì vậy, các trình duyệt web sẽ không cắt bớt hoặc giới hạn URL của bạn một cách có chủ ý khi gửi các yêu cầu Ajax.


4
Sự khác biệt giữa Internet Explorer và IIS có ý nghĩa khi bạn cho rằng không phải tất cả các yêu cầu đến máy chủ web đều được thực hiện thông qua trình duyệt.
TroySteven

15

Chỉ thị dòng yêu cầu giới hạn đặt độ dài tối đa của URL. Theo mặc định, nó được đặt thành 8190, cung cấp cho bạn rất nhiều phòng. Tuy nhiên, các máy chủ khác và một số lông mày, giới hạn độ dài nhiều hơn.

Vì tất cả các tham số được truyền trên dòng URL, các mục có mật khẩu của các trường ẩn cũng sẽ được hiển thị trong URL tất nhiên. Không nên sử dụng điện thoại di động cho các biện pháp bảo mật thực sự và tốt nhất nên được coi là bảo mật mỹ phẩm.


11

Tôi có kinh nghiệm với SharePoint 2007, 2010 và có giới hạn về độ dài URL bạn có thể tạo từ phía máy chủ trong trường hợp này SharePoint, do đó, nó phụ thuộc chủ yếu vào, 1) ứng dụng khách (trình duyệt, phiên bản và HĐH) và 2) công nghệ máy chủ, IIS, Apache, v.v.


1
Vì SharePoint hiển thị URL web dưới dạng đường dẫn tệp, nên nó chạy trong một giới hạn riêng: giới hạn độ dài đường dẫn tệp Windows là 260 ký tự (hoặc 248 ký tự khi sử dụng API). Để biết thêm chi tiết về giới hạn này, hãy xem phần "Giới hạn độ dài đường dẫn tối đa" tại đây: msdn.microsoft.com/en-us/l
Library / aa365247 (VS85) .aspx

10

Có vẻ như Chrome ít nhất đã tăng giới hạn này. Tôi đã dán 20.000 ký tự vào bookmarklet và nó đã lấy nó.


1

Theo thông số HTTP, không có giới hạn về độ dài của URL. Giữ URL của bạn dưới 2048 ký tự; điều này sẽ đảm bảo các URL hoạt động trong tất cả các cấu hình máy khách và máy chủ. Ngoài ra, các công cụ tìm kiếm như URL duy trì dưới 2000 ký tự.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.