FWIW, untuk pengguna Windows, jalur server yang melebihi 250 karakter dapat menyebabkan kesedihan saat membuat URL, misalnya, lihat HttpContext.Current.Server.MapPath gagal untuk nama file yang panjang di forums.asp.net . Intinya: jika satu batasan tidak membuat Anda, yang lain mungkin .
Bolehkah saya bertanya mengapa Anda perlu tahu itu? Yaitu apa gunanya memiliki URL yang panjang?
o0 '.
17
@Lohoris: Jika suatu formulir menggunakan getbukan post, maka bookmark halaman yang dicapai oleh formulir yang diisi akan menangkap informasi yang dimasukkan. Dalam beberapa kasus, itu bisa buruk, tetapi dalam kasus lain itu bisa berguna. Agar itu berfungsi, browser harus dapat menangani URL yang berisi semua informasi.
supercat
4
@Lohoris Ketika kami menulis halaman untuk menghasilkan laporan, kami menggunakan formulir kriteria. Berguna pada beberapa laporan untuk dapat mengirim email url kepada seseorang dengan kriteria bawaan. Bergantung pada laporan, kami terkadang dipaksa untuk menggunakan postatau kriteria tersebut terpotong. Hanya kasus penggunaan lain.
buzzsawddog
Jawaban:
4957
Jawaban singkat - batas de facto 2000 karakter
Jika Anda menyimpan URL di bawah 2000 karakter, mereka akan berfungsi di hampir semua kombinasi perangkat lunak klien dan server.
Jika Anda menargetkan browser tertentu, lihat di bawah untuk detail lebih spesifik batas tertentu.
Jawaban yang lebih panjang - pertama, standar ...
RFC 2616 (Hypertext Transfer Protocol HTTP / 1.1) bagian 3.2.1 mengatakan
Protokol HTTP tidak menempatkan batas apriori pada panjang URI. Server HARUS dapat menangani URI dari sumber daya apa pun yang mereka layani, dan HARUS menangani URI dengan panjang yang tidak terbatas jika menyediakan bentuk berbasis GET yang dapat menghasilkan URI tersebut. Server HARUS mengembalikan status 414 (Permintaan-URI Terlalu Panjang) jika URI lebih panjang daripada yang bisa ditangani server (lihat bagian 10.4.15).
RFC itu telah usang oleh RFC7230 yang merupakan penyegaran dari spesifikasi HTTP / 1.1. Ini berisi bahasa yang serupa, tetapi juga menyarankan ini:
Berbagai batasan ad hoc pada panjang baris permintaan ditemukan dalam praktik. DIREKOMENDASIKAN bahwa semua pengirim dan penerima HTTP mendukung, minimal, panjang baris permintaan 8000 oktet.
... dan kenyataan
Itu yang dikatakan standar . Untuk kenyataannya , ada sebuah artikel tentang boutell.com (link masuk ke Internet Archive cadangan) yang membahas apa browser dan server individu implementasi akan mendukung. Ringkasan eksekutif adalah:
URL yang sangat panjang biasanya merupakan kesalahan. URL lebih dari 2.000 karakter tidak akan berfungsi di browser web paling populer. Jangan menggunakannya jika Anda bermaksud situs Anda berfungsi untuk sebagian besar pengguna internet.
(Catatan: ini adalah kutipan dari sebuah artikel yang ditulis di 2006 , namun pada tahun 2015 IE menurun penggunaan sarana yang URL lagi melakukan pekerjaan untuk mayoritas Namun, IE masih memiliki keterbatasan ....)
Saya telah menguji IE10 dan bilah alamat hanya akan menerima 2.083 karakter. Anda dapat mengklik URL yang lebih panjang dari ini, tetapi bilah alamat hanya akan menampilkan 2.083 karakter dari tautan ini.
Ada beragam laporan bahwa IE11 mendukung URL yang lebih panjang - lihat komentar di bawah. Mengingat beberapa orang melaporkan masalah, saran umum masih berlaku.
Mesin pencari seperti URL <2048 karakter ...
Perlu diketahui bahwa protokol peta situs , yang memungkinkan situs untuk memberi tahu mesin pencari tentang halaman yang tersedia, memiliki batas 2048 karakter dalam URL. Jika Anda berniat menggunakan peta situs, batas telah ditentukan untuk Anda! ( Lihat jawaban Calin-Andrei Burloiu di bawah)
Ada juga beberapa penelitian dari 2010 ke panjang URL maksimum yang akan dirayapi dan diindeks oleh mesin pencari . Mereka menemukan batasnya adalah 2.047 karakter, yang tampaknya bersekutu dengan spesifikasi protokol peta situs. Namun, mereka juga menemukan alat Google SERP tidak akan mengatasi URL lebih dari 1855 karakter.
CDN memiliki batasan
CDN juga memberlakukan batas pada panjang URI, dan akan mengembalikan a 414 Too long requestketika batas-batas ini tercapai, misalnya:
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
Lihat juga jawaban ini dari Matas Vaitkevicius di bawah ini.
Apakah informasi ini mutakhir?
Ini adalah pertanyaan populer, dan karena penelitian asli ~ 12 tahun saya akan mencoba untuk tetap up to date: Pada Januari 2020 , saran masih berlaku. Meskipun IE11 mungkin dapat menerima URL yang lebih panjang, keberadaan instalasi IE yang lebih lama ditambah keterbatasan mesin pencari berarti bertahan di bawah 2000 karakter adalah kebijakan umum terbaik.
Hari ini IE11 memotong URL saya menjadi 2048 karakter.
AntiCZ
2
Pertanyaan awal: "Berapa panjang maksimum URL di berbagai browser ". Ini tidak menjawab pertanyaan, itu hanya memberi untuk IE. Orang membuat situs web untuk tujuan yang berbeda, misalnya alat internal yang TIDAK AKAN PERNAH diakses oleh IE.
Skeets
13
di Chrome pada tahun 2016 saya bisa membuka url dengan 260300 ascii chars menggunakan perintah osx open dari skrip sederhana, dan dapat mengonfirmasi bahwa semua karakter diteruskan ke server. Url di browser terpotong menjadi 32791 karakter, disimpulkan dengan ... (% E2% 80% A6% E2% 80% A6)
Rob Dawson
22
@ Paul Dixon Sungguh menyenangkan melihat orang-orang yang mau melangkah lebih jauh dalam menjawab pertanyaan di situs ini. Jelas orang menunjukkan rasa terima kasih mereka dengan hitungan upvote saat ini menjadi 3734, tapi saya ingin mengucapkan terima kasih! :)
Dia berbicara tentang fakta bahwa jpeg yang disandikan base64 secara teknis URL, karena ditentukan sebagai data: *. Meskipun dia benar dalam menyatakan bahwa itu adalah URL yang valid, saya tidak berpikir itu yang ditanyakan.
Fitblip
54
... atau cukup rekatkan di bilah alamat Anda.
Gras Double
108
Itu adalah URI bukan URL.
mike jones
65
Karena URL data berisi protokol "data:", dan pengenal, itu semua yang Anda butuhkan untuk MENCARI "file" itu (bahkan jika "Filesystem" adalah ruang dari semua file yang mungkin). Oleh karena itu URL, yang juga merupakan URI. (Tapi jelas bukan "bukan URL")
MickLH
5
@DoubleGras Google Chrome untuk Mac tidak memungkinkan saya untuk menempelkan URL yang panjang ke bilah alamat saya
Max Nanasy
157
FAQ WWW: Berapa panjang maksimum suatu URL? memiliki jawabannya sendiri berdasarkan pengujian dan penelitian empiris. Jawaban singkatnya adalah bahwa menggunakan lebih dari 2048 karakter membuat Internet Explorer tidak bahagia dan karenanya ini adalah batas yang harus Anda gunakan. Lihat halaman untuk jawaban yang panjang.
<scriptsrc="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script><scripttype="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>
BAGIAN 1
Di Chrome saya mendapat:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
2046
Itu kemudian meledak dengan:
Kesalahan HTTP 404.15 - Tidak Ditemukan Modul pemfilteran permintaan dikonfigurasi untuk menolak permintaan yang terlalu panjang string kueri.
yang sama sekali tidak membantu. Saya akhirnya memutuskan untuk menggunakan fiddler untuk menghapus pengarah dari header.
static function OnBeforeRequest(oSession: Session) {
if (oSession.url.Contains("localhost:50766")) {
oSession.RequestHeaders.Remove("Referer");
}
Yang melakukannya dengan baik.
Chrome: mencapai 15613 karakter. (Saya kira itu adalah batas 16K untuk IIS)
Dan gagal lagi dengan:
<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 gagal dengan crash iexplore.exe.
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
Jadi, pada dasarnya, asumsi saya tentang 512 karakter sebagian besar salah ^ _ ^ Terima kasih atas pengujiannya. Saya tidak akan pernah peduli lagi dengan panjang kueri param ..
Gogol
17
Ini harus menjadi jawaban yang diterima ... yang pertama sebenarnya tidak memberikan batasan keras untuk setiap browser yang merupakan pertanyaan yang diajukan.
GrayedFox
1
Mungkin layak untuk melihat ke dalam Safari juga. Safari adalah satu-satunya browser yang tidak mendukung unduhan yang dibuat oleh klien. Cara mengatasinya adalah: a) membuka UOB BLOB (URI singkat sementara yang menunjuk ke gumpalan dalam-memori) di jendela baru, b) membuka URI basis-64 data yang disandikan di jendela baru (mungkin sangat panjang, tetapi mendukung pengetikan pantomim). Detail di sini: github.com/eligrey/FileSaver.js/issues/12
Mat Gessel
@Vaitkevicius apakah Anda tahu jika spasi (% 20) dihitung sebagai satu karakter atau 3?
Jun711
1
@ Jun tergantung di mana ... tekan F12 dan rekatkan mengikuti ke konsol, console.log("%20".length +" "+decodeURI("%20").length)ini seharusnya menjelaskannya
Matas Vaitkevicius
96
Sebenarnya tidak ada panjang URL maksimum universal. Panjang maks ditentukan hanya oleh apa yang dipilih browser klien untuk didukung, yang sangat bervariasi. Batas 2.083 hanya ada di Internet Explorer (semua versi hingga 7.0). Panjang maksimal di Firefox dan Safari tampaknya tidak terbatas, meskipun ketidakstabilan terjadi dengan URL mencapai sekitar 65.000 karakter. Opera tampaknya tidak memiliki panjang URL maksimal apa pun, dan tidak mengalami ketidakstabilan dalam jarak yang sangat panjang.
Jika ketidakstabilan sekitar 65k mungkin ada di dekat 65535 (2 ^ 16 - 1). Mungkin mereka loop melalui karakter menggunakan i pendek? Hanya pemikiran saja. Saya ingin tahu URL apa yang mereka uji untuk 65k + o_o ;;
Garet Claborn
5
Jawaban ini mungkin yang harus diterima, karena memberikan jawaban konkret: 2k untuk IE, 65k untuk Safari / Firefox, "lebih" untuk Opera.
eis
Saya penasaran. Apakah URL 65k skema data URI atau benar-benar URL dalam arti klasik?
SaAtomic
81
Pada platform Apple (iOS / macOS / tvOS / watchOS), batasnya mungkin skema skema panjang 2 GB , seperti yang terlihat oleh komentar ini dalam kode sumber 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/CFURLif((urlStringLength >0)&&(urlStringLength <= INT_MAX)){...
Di iOS, saya telah menguji dan mengonfirmasi bahwa URL yang panjangnya 300+ MB diterima. Anda dapat mencoba URL yang panjang seperti ini di Objective-C:
Anda berhak mendapatkan +1 hanya untuk upaya mencoba URL 300MB
Дамян Станчев
3
iOS bukan peramban itu sendiri. Apakah ini di Safari untuk iOS?
Randall
6
Skema @allall ditangani oleh OS dan kemudian dikirim ke aplikasi yang dapat membukanya. Jadi semua aplikasi di iOS, termasuk Safari, dapat menangani URI panjang.
Cœur
1
Terimakasih atas klarifikasinya. Namun, mungkin, ini tidak mencegah aplikasi yang sewenang-wenang (misalnya, misalnya browser yang didukung Tor) memperkenalkan batasan panjangnya sendiri, benar?
Randall
1
@ Randall benar tetapi mengapa ada orang yang melakukan itu ...
Xander
70
The URI RFC (yang URL yang subset) tidak menentukan panjang maksimum, namun, itu merekomendasikan bahwa hostname bagian dari URI (jika ada) tidak melebihi 255 karakter:
Produsen URI harus menggunakan nama yang sesuai dengan sintaks DNS, bahkan ketika penggunaan DNS tidak segera terlihat, dan harus membatasi nama-nama ini tidak lebih dari 255 karakter.
Sebagaimana dicatat dalam posting lain, beberapa browser memiliki batasan praktis pada panjang URL.
URI dalam HTTP dapat direpresentasikan dalam bentuk absolut atau relatif terhadap beberapa
basis URI yang diketahui [11], tergantung pada konteks penggunaannya. Kedua
bentuk tersebut dibedakan oleh fakta bahwa URI absolut selalu dimulai
dengan nama skema diikuti oleh titik dua. Untuk informasi pasti tentang
sintaks dan semantik URL, lihat "Uniform Resource Identifiers (URI): Sintaks dan Semantik Generik," RFC 2396 [42] (yang menggantikan RFC 1738 [4] dan RFC 1808 [11]). Spesifikasi ini mengadopsi definisi "referensi-URI", "absoluteURI", "relatifURI", "port",
"host", "abs_path", "rel_path", dan "otoritas" dari
spesifikasi itu.
Protokol HTTP tidak menempatkan batas apriori pada panjang
URI. Server HARUS dapat menangani URI dari sumber daya apa pun yang mereka layani, dan HARUS menangani URI dengan panjang tidak terbatas jika mereka menyediakan formulir berbasis GET yang dapat menghasilkan URI tersebut. * Server HARUS mengembalikan 414 (Permintaan-URI Terlalu Panjang) status jika URI lebih panjang dari yang dapat ditangani server (lihat bagian 10.4.15).
Catatan: Server harus berhati-hati tergantung pada panjang URI di atas 255 byte, karena beberapa klien yang lebih tua atau implementasi proxy mungkin tidak mendukung panjang ini dengan benar.
Seperti yang disebutkan oleh @Brian, klien HTTP (mis. Browser) mungkin memiliki batasnya sendiri, dan server HTTP akan memiliki batas yang berbeda.
antarmuka sosial ke Web bergantung pada email ketika pengguna ingin merekomendasikan halaman Web satu sama lain, dan email adalah cara kedua yang paling umum pengguna dapatkan ke situs baru (mesin pencari menjadi yang paling umum): pastikan bahwa semua URL pada Anda situs kurang dari 78 karakter sehingga tidak akan membungkus umpan baris.
Ini bukan maksimum tetapi saya menganggap ini sebagai maksimum praktis jika Anda ingin URL Anda dibagikan.
Saya bertanya-tanya dari mana "78" berasal? Mungkin artikel asli tahun 1999 itu ditulis dengan asumsi bahwa orang membaca email mereka di windows terminal 80x24? Tetap saja, saran yang bagus!
Jon Schneider
3
Baik. Kartu punch IBM juga 80 kolom. Dengan dua karakter yang diambil oleh carriage return dan umpan baris, Anda mendapatkan 78.
Paul Morgan
1
Ha ha. :-) Saya sebenarnya sedang mempertimbangkan referensi monitor CGA 80x25 era 1981 dalam komentar saya, tetapi Anda mencapai lebih jauh ke belakang! ... Saya tidak ada untuk era kartu punch, tetapi apakah mereka 80 byte, atau hanya 80 bit?
Jon Schneider
1
Tidak persis satu byte (8 bit). Itu dikodekan satu karakter di setiap kolom.
Paul Morgan
3
@JonSchneider - 78 cukup spesifik, dan mungkin berhubungan dengan keterbacaan teks (dari perspektif kegunaan mengingat latar belakang Nielsen), yang terbaik antara 50-60, dan maksimal 75 .
Jay Rainey
36
Protokol peta situs , yang merupakan cara bagi webmaster untuk menginformasikan mesin pencari tentang halaman di situs mereka (juga digunakan oleh Google di Alat Webmaster), mendukung URL dengan kurang dari 2048 karakter. Jadi, jika Anda berencana untuk menggunakan fitur ini untuk Optimasi Mesin Pencari, pertimbangkan ini.
Ini agak membingungkan. Protokol peta situs "mendukung URL dengan kurang dari 2048 karakter." Saya membayangkan situs seperti example.com akan berfungsi. Saya pikir pertanyaan ini lebih tentang maksimal?
HoldOffHunger
19
Layanan pelaporan ASP.NET 2 dan SQL Server 2005 memiliki batas 2028. Saya menemukan ini dengan cara yang sulit, di mana generator URL dinamis saya tidak akan melewati beberapa parameter ke laporan di luar titik itu. Ini berada di bawah Internet Explorer 8.
Variasi antara Internet Explorer dan IIS masuk akal ketika Anda mempertimbangkan bahwa tidak semua permintaan ke server web dilakukan melalui browser.
TroySteven
15
Batasi arahan baris permintaan menetapkan panjang maksimum URL. Secara default, ini diatur ke 8190, yang memberi Anda banyak ruang. Namun server lain dan beberapa browser, membatasi panjangnya lebih.
Karena semua parameter diteruskan pada baris URL, item yang ada di kata sandi bidang tersembunyi juga akan ditampilkan dalam URL. Ponsel tidak boleh digunakan untuk langkah-langkah keamanan nyata dan harus dianggap keamanan kosmetik yang terbaik.
Saya memiliki pengalaman dengan SharePoint 2007, 2010 dan ada batas URL panjang yang dapat Anda buat dari sisi server dalam hal ini SharePoint, jadi sebagian besar tergantung pada, 1) klien (browser, versi, dan OS) dan 2) teknologi server, IIS, Apache, dll.
Karena SharePoint memaparkan URL web sebagai jalur file, ia menjalankan ke dalam batasan yang terpisah: batas panjang jalur file Windows 260 karakter (atau 248 karakter saat menggunakan API). Untuk detail lebih lanjut tentang batas ini, lihat bagian "Pembatasan Panjang Jalur Maksimum" di sini: msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx
Thriggle
10
Tampaknya Chrome setidaknya telah menaikkan batas ini. Saya menempelkan 20.000 karakter ke dalam bookmarklet dan dibutuhkan.
Menurut spesifikasi HTTP, tidak ada batasan panjang URL. Simpan URL Anda di bawah 2048 karakter; ini akan memastikan URL berfungsi di semua konfigurasi klien & server. Juga, mesin pencari seperti URL tetap di bawah sekitar 2000 karakter.
get
bukanpost
, maka bookmark halaman yang dicapai oleh formulir yang diisi akan menangkap informasi yang dimasukkan. Dalam beberapa kasus, itu bisa buruk, tetapi dalam kasus lain itu bisa berguna. Agar itu berfungsi, browser harus dapat menangani URL yang berisi semua informasi.post
atau kriteria tersebut terpotong. Hanya kasus penggunaan lain.Jawaban:
Jawaban singkat - batas de facto 2000 karakter
Jika Anda menyimpan URL di bawah 2000 karakter, mereka akan berfungsi di hampir semua kombinasi perangkat lunak klien dan server.
Jika Anda menargetkan browser tertentu, lihat di bawah untuk detail lebih spesifik batas tertentu.
Jawaban yang lebih panjang - pertama, standar ...
RFC 2616 (Hypertext Transfer Protocol HTTP / 1.1) bagian 3.2.1 mengatakan
RFC itu telah usang oleh RFC7230 yang merupakan penyegaran dari spesifikasi HTTP / 1.1. Ini berisi bahasa yang serupa, tetapi juga menyarankan ini:
... dan kenyataan
Itu yang dikatakan standar . Untuk kenyataannya , ada sebuah artikel tentang boutell.com (link masuk ke Internet Archive cadangan) yang membahas apa browser dan server individu implementasi akan mendukung. Ringkasan eksekutif adalah:
(Catatan: ini adalah kutipan dari sebuah artikel yang ditulis di 2006 , namun pada tahun 2015 IE menurun penggunaan sarana yang URL lagi melakukan pekerjaan untuk mayoritas Namun, IE masih memiliki keterbatasan ....)
Batasan Internet Explorer ...
Panjang URL maksimum IE8 adalah 2.083 karakter , dan tampaknya IE9 memiliki batas yang sama .
Saya telah menguji IE10 dan bilah alamat hanya akan menerima 2.083 karakter. Anda dapat mengklik URL yang lebih panjang dari ini, tetapi bilah alamat hanya akan menampilkan 2.083 karakter dari tautan ini.
Ada Langgan yang bagus di blog IE Internal yang masuk ke beberapa latar belakang ini.
Ada beragam laporan bahwa IE11 mendukung URL yang lebih panjang - lihat komentar di bawah. Mengingat beberapa orang melaporkan masalah, saran umum masih berlaku.
Mesin pencari seperti URL <2048 karakter ...
Perlu diketahui bahwa protokol peta situs , yang memungkinkan situs untuk memberi tahu mesin pencari tentang halaman yang tersedia, memiliki batas 2048 karakter dalam URL. Jika Anda berniat menggunakan peta situs, batas telah ditentukan untuk Anda! ( Lihat jawaban Calin-Andrei Burloiu di bawah)
Ada juga beberapa penelitian dari 2010 ke panjang URL maksimum yang akan dirayapi dan diindeks oleh mesin pencari . Mereka menemukan batasnya adalah 2.047 karakter, yang tampaknya bersekutu dengan spesifikasi protokol peta situs. Namun, mereka juga menemukan alat Google SERP tidak akan mengatasi URL lebih dari 1855 karakter.
CDN memiliki batasan
CDN juga memberlakukan batas pada panjang URI, dan akan mengembalikan a
414 Too long request
ketika batas-batas ini tercapai, misalnya:(kredit ke timrs2998 untuk memberikan info itu di komentar)
Roundup browser tambahan
Saya menguji yang berikut ini terhadap server Apache 2.4 yang dikonfigurasi dengan LimitRequestLine dan LimitRequestFieldSize yang sangat besar .
Lihat juga jawaban ini dari Matas Vaitkevicius di bawah ini.
Apakah informasi ini mutakhir?
Ini adalah pertanyaan populer, dan karena penelitian asli ~ 12 tahun saya akan mencoba untuk tetap up to date: Pada Januari 2020 , saran masih berlaku. Meskipun IE11 mungkin dapat menerima URL yang lebih panjang, keberadaan instalasi IE yang lebih lama ditambah keterbatasan mesin pencari berarti bertahan di bawah 2000 karakter adalah kebijakan umum terbaik.
sumber
URL terpanjang yang saya temui adalah data URL
Contoh URL gambar dari hasil gambar Google (11747 karakter)
sumber
FAQ WWW: Berapa panjang maksimum suatu URL? memiliki jawabannya sendiri berdasarkan pengujian dan penelitian empiris. Jawaban singkatnya adalah bahwa menggunakan lebih dari 2048 karakter membuat Internet Explorer tidak bahagia dan karenanya ini adalah batas yang harus Anda gunakan. Lihat halaman untuk jawaban yang panjang.
sumber
Saya menulis tes ini yang terus menambahkan
'a'
ke parameter sampai browser gagalBagian C #:
Melihat:
BAGIAN 1
Di Chrome saya mendapat:
Itu kemudian meledak dengan:
Sama di Internet Explorer 8 dan Firefox
BAGIAN 2
Saya beralih ke mode mudah dan menambahkan batasan tambahan untuk IISExpress
applicationhost.config
danweb.config
pengaturanmaxQueryStringLength="32768"
.setelah 7744 karakter.
BAGIAN 3
Ditambahkan
yang sama sekali tidak membantu. Saya akhirnya memutuskan untuk menggunakan fiddler untuk menghapus pengarah dari header.
Yang melakukannya dengan baik.
Chrome: mencapai 15613 karakter. (Saya kira itu adalah batas 16K untuk IIS)
Dan gagal lagi dengan:
Firefox:
Internet Explorer 8 gagal dengan crash iexplore.exe.
Setelah 2505
Android Emulator
Internet Explorer 11
Internet Explorer 10
Internet Explorer 9
sumber
console.log("%20".length +" "+decodeURI("%20").length)
ini seharusnya menjelaskannyaSebenarnya tidak ada panjang URL maksimum universal. Panjang maks ditentukan hanya oleh apa yang dipilih browser klien untuk didukung, yang sangat bervariasi. Batas 2.083 hanya ada di Internet Explorer (semua versi hingga 7.0). Panjang maksimal di Firefox dan Safari tampaknya tidak terbatas, meskipun ketidakstabilan terjadi dengan URL mencapai sekitar 65.000 karakter. Opera tampaknya tidak memiliki panjang URL maksimal apa pun, dan tidak mengalami ketidakstabilan dalam jarak yang sangat panjang.
sumber
Pada platform Apple (iOS / macOS / tvOS / watchOS), batasnya mungkin skema skema panjang 2 GB , seperti yang terlihat oleh komentar ini dalam kode sumber Swift :
Di iOS, saya telah menguji dan mengonfirmasi bahwa URL yang panjangnya 300+ MB diterima. Anda dapat mencoba URL yang panjang seperti ini di Objective-C:
Dan tangkap jika berhasil dengan:
sumber
The URI RFC (yang URL yang subset) tidak menentukan panjang maksimum, namun, itu merekomendasikan bahwa hostname bagian dari URI (jika ada) tidak melebihi 255 karakter:
Sebagaimana dicatat dalam posting lain, beberapa browser memiliki batasan praktis pada panjang URL.
sumber
Spesifikasi HTTP 1.1 mengatakan:
Seperti yang disebutkan oleh @Brian, klien HTTP (mis. Browser) mungkin memiliki batasnya sendiri, dan server HTTP akan memiliki batas yang berbeda.
sumber
Dukungan Microsoft mengatakan "Panjang URL maksimum adalah 2.083 karakter di Internet Explorer".
IE memiliki masalah dengan URL lebih lama dari itu. Firefox sepertinya berfungsi baik dengan> 4k karakter.
sumber
Dalam URL seperti yang direkomendasikan oleh Jakob Nielsen oleh UI :
Ini bukan maksimum tetapi saya menganggap ini sebagai maksimum praktis jika Anda ingin URL Anda dibagikan.
sumber
Protokol peta situs , yang merupakan cara bagi webmaster untuk menginformasikan mesin pencari tentang halaman di situs mereka (juga digunakan oleh Google di Alat Webmaster), mendukung URL dengan kurang dari 2048 karakter. Jadi, jika Anda berencana untuk menggunakan fitur ini untuk Optimasi Mesin Pencari, pertimbangkan ini.
sumber
Layanan pelaporan ASP.NET 2 dan SQL Server 2005 memiliki batas 2028. Saya menemukan ini dengan cara yang sulit, di mana generator URL dinamis saya tidak akan melewati beberapa parameter ke laporan di luar titik itu. Ini berada di bawah Internet Explorer 8.
sumber
Mengapa batas Internet Explorer hanya 2K sedangkan IIS memiliki batas 16K? Saya pikir itu tidak masuk akal.
Jadi saya ingin memulai percobaan tentang batas ukuran URL permintaan Ajax.
Saya telah mengatur konektor Tomcat HTTP saya maxHttpHeaderSize = "1048576". Dan menyiapkan URL yang sangat panjang.
Lalu saya mengirim permintaan dengan URL panjang seperti berikut:
Laporan jQuery selesai. Tomcat melaporkan URL yang diminta adalah 1048015 byte. Itu diuji dengan Chrome 50 dan Internet Explorer 11.
Jadi browser web tidak akan memotong atau membatasi URL Anda dengan sengaja saat mengirim permintaan Ajax.
sumber
Batasi arahan baris permintaan menetapkan panjang maksimum URL. Secara default, ini diatur ke 8190, yang memberi Anda banyak ruang. Namun server lain dan beberapa browser, membatasi panjangnya lebih.
Karena semua parameter diteruskan pada baris URL, item yang ada di kata sandi bidang tersembunyi juga akan ditampilkan dalam URL. Ponsel tidak boleh digunakan untuk langkah-langkah keamanan nyata dan harus dianggap keamanan kosmetik yang terbaik.
sumber
Saya memiliki pengalaman dengan SharePoint 2007, 2010 dan ada batas URL panjang yang dapat Anda buat dari sisi server dalam hal ini SharePoint, jadi sebagian besar tergantung pada, 1) klien (browser, versi, dan OS) dan 2) teknologi server, IIS, Apache, dll.
sumber
Tampaknya Chrome setidaknya telah menaikkan batas ini. Saya menempelkan 20.000 karakter ke dalam bookmarklet dan dibutuhkan.
sumber
Menurut spesifikasi HTTP, tidak ada batasan panjang URL. Simpan URL Anda di bawah 2048 karakter; ini akan memastikan URL berfungsi di semua konfigurasi klien & server. Juga, mesin pencari seperti URL tetap di bawah sekitar 2000 karakter.
sumber