Banyak browser akan menampilkannya dengan diam @, tetapi misalnya saat Anda menyalin dan menempelkan URI ke dalam dokumen teks, itu akan menjadi %40.
… Tetapi juga secara langsung
Sebagai ganti persen-encoding-nya, Anda dapat menggunakan @langsung di jalur HTTP URI.
Lihat sintaks untuk jalur URI. Berbagai klausul terkait samping, jalan dapat terdiri dari karakter dalam segment, segment-nzatau segment-nz-ncset. segmentdan segment-nz terdiri dari karakter dari pcharhimpunan, yang didefinisikan sebagai:
Many browsers would display it still as @, but e.g. when you copy-and-paste the URI into a text document, it will be %40.Itu tidak benar untuk Chrome.
Defozo
42
Bisakah Anda menggunakan @ -symbol di URL? - Ya kamu bisa!
Perhatikan bahwa @ -karakter, nilai heksadesimal 40, nilai desimal 64, adalah karakter yang dicadangkan untuk URI. Penggunaannya adalah untuk hal-hal seperti alamat email di mailto:URI, misalnya mailto:[email protected]dan untuk meneruskan informasi nama pengguna dan sandi pada URI (yang merupakan ide yang buruk, tapi mungkin):http://username:[email protected]
Jika Anda menginginkan URL yang memiliki @ -symbol di sebuah jalur, Anda perlu mengenkodenya, yang disebut " URL-encoding ". Contohnya seperti ini:http://somewhere.foo/profile/username%40somewhere.foo
Banyak kerangka kerja web juga akan membantu Anda baik secara otomatis, atau dengan fungsi pembantu, untuk mengonversi ke dan dari URL yang dikodekan URL.
Jadi, ringkasnya : Ya, Anda dapat menggunakan @ -symbol di URL, tetapi Anda harus memastikannya dikodekan, karena Anda tidak dapat menggunakan @ -karakter .
+1 sempurna. Daripada menyampaikan teori lebih baik dicoba. Ini adalah hal yang saya maksud, terima kasih telah menjadikan ini sebagai jawaban yang bagus.
Ini dapat digunakan dengan kode, tapi menurut saya bukan itu yang Anda tanyakan.
Tampaknya peramban modern akan menangani ini. Bagaimanapun Anda bertanya apakah ini aman dan sesuai dengan spesifikasi RFC Anda tidak boleh menggunakannya (tidak dikodekan) kecuali untuk tujuan yang dimaksudkan.
Jawaban:
Persen-dikodekan ...
Anda dapat menggunakan
@
karakter di jalur HTTP URI jika Anda mengenkodenya dalam persen sebagai%40
.Banyak browser akan menampilkannya dengan diam
@
, tetapi misalnya saat Anda menyalin dan menempelkan URI ke dalam dokumen teks, itu akan menjadi%40
.… Tetapi juga secara langsung
Sebagai ganti persen-encoding-nya, Anda dapat menggunakan
@
langsung di jalur HTTP URI.Lihat sintaks untuk jalur URI. Berbagai klausul terkait samping, jalan dapat terdiri dari karakter dalam
segment
,segment-nz
atausegment-nz-nc
set.segment
dansegment-nz
terdiri dari karakter daripchar
himpunan, yang didefinisikan sebagai:Seperti yang Anda lihat,
@
daftar secara eksplisit.The
segment-nz-nc
set juga mencantumkan@
karakter secara eksplisit:Jadi, HTTP URI seperti ini benar-benar valid:
Contoh
Berikut adalah contoh halaman Wikipedia:
http://en.wikipedia.org/wiki/%22@%22_%28album%29
Seperti yang Anda lihat,
"
,(
, dan)
karakter persen-dikodekan, tetapi@
dan_
digunakan secara langsung.sumber
@
di URL, tetapi URL profil lama (?) Masih berfungsi: contoh dengan persen-encoded@
( tidak berfungsi!) Vs. contoh menggunakan@
langsung (tidak bekerja!) .@
dalam kasus Twitter. Tautan dalam mereka merujuk url tanpa melalui@
: twitter.com/@stackexchange@
tidak unreserved . Jadi konsumen tidak boleh berasumsi%40
dan@
setara.Many browsers would display it still as @, but e.g. when you copy-and-paste the URI into a text document, it will be %40.
Itu tidak benar untuk Chrome.Bisakah Anda menggunakan @ -symbol di URL? - Ya kamu bisa!
Perhatikan bahwa @ -karakter, nilai heksadesimal 40, nilai desimal 64, adalah karakter yang dicadangkan untuk URI. Penggunaannya adalah untuk hal-hal seperti alamat email di
mailto:
URI, misalnyamailto:[email protected]
dan untuk meneruskan informasi nama pengguna dan sandi pada URI (yang merupakan ide yang buruk, tapi mungkin):http://username:[email protected]
Jika Anda menginginkan URL yang memiliki @ -symbol di sebuah jalur, Anda perlu mengenkodenya, yang disebut " URL-encoding ". Contohnya seperti ini:
http://somewhere.foo/profile/username%40somewhere.foo
Semua browser modern akan menampilkan ini sebagai http://somewhere.foo/profile/[email protected] , dan akan mengonversi semua jenis @ -sign to
%40
, sehingga mudah digunakan.Banyak kerangka kerja web juga akan membantu Anda baik secara otomatis, atau dengan fungsi pembantu, untuk mengonversi ke dan dari URL yang dikodekan URL.
Jadi, ringkasnya : Ya, Anda dapat menggunakan @ -symbol di URL, tetapi Anda harus memastikannya dikodekan, karena Anda tidak dapat menggunakan @ -karakter .
sumber
@
karakter tidak "perlu" dikodekan di bagian jalur url ( greenbytes.de/tech/webdav/rfc3986.html#path )Di RFC karakter berikut:
dicadangkan dan:
Jadi tidak disarankan menggunakan karakter ini tanpa encoding.
sumber
Pada dasarnya tidak.
@
adalah karakter khusus dan hanya boleh digunakan untuk tujuan yang dimaksudkan.Lihat: http://perishablepress.com/stop-using-unsafe-characters-in-urls/ dan http://www.ietf.org/rfc/rfc3986.txt
Ini dapat digunakan dengan kode, tapi menurut saya bukan itu yang Anda tanyakan.
Tampaknya peramban modern akan menangani ini. Bagaimanapun Anda bertanya apakah ini aman dan sesuai dengan spesifikasi RFC Anda tidak boleh menggunakannya (tidak dikodekan) kecuali untuk tujuan yang dimaksudkan.
sumber