URL absolut vs relatif


214

Saya ingin mengetahui perbedaan antara kedua jenis URL ini: URL relatif (untuk gambar, file CSS, file JS, dll.) Dan URL absolut.

Selain itu, mana yang lebih baik digunakan?

Jawaban:


191

Secara umum, ini dianggap sebagai praktik terbaik untuk menggunakan URL relatif, sehingga situs web Anda tidak akan terikat dengan URL dasar di mana ia saat ini digunakan. Misalnya, ini akan dapat bekerja di localhost, serta pada domain publik Anda, tanpa modifikasi.


6
+1 Saya setuju. Mungkin ada (beberapa) saat url absolut lebih baik, misalnya saat menggunakan CDN, atau jika Anda perlu mengubah situs web konten. Mencari nama domain jauh lebih mudah daripada mencari IMHO relatif url.
Sune Rievers

67
Untuk tujuan pemeliharaan, lebih mudah menggunakan URL absolut, tanpa nama domain. yaitu On StackOverflow menggunakan URL absolut '/ pertanyaan / 2005079 / absolute-vs-relatif-url' untuk menautkan ke pertanyaan ini. Tanda '/' di bagian depan membuat URL absolut. Pendekatan ini terbayar ketika Anda pergi untuk memindahkan file Anda atau mengubah struktur direktori proyek Anda.
Mike

10
@Baumr Tapi bisakah Anda melakukan itu? Saya pasti penggemar / pendukung menggunakan metode itu, tetapi masuk ke kerangka kerja yang lebih besar dan refactoring besar adalah tugas yang menakutkan / menakutkan. Meskipun Anda berpikir bahwa Anda mungkin telah mengubah semuanya, bahkan dalam IDE yang cerdas, sering kali mereka terlewatkan jika mereka dikodekan menjadi string atau dibuat secara dinamis. Bagian terburuk dari itu adalah bahwa biasanya referensi yang terlewat itu tidak tertangkap sampai setelah solusi Anda kembali ke produksi ... :(
dudewad

31
@ Mike mengapa Anda menyebut URL relatif-root 'absolut'?
törzsmókus

4
@ törzsmókus pertanyaan bagus. Itu tidak membiarkan saya mengedit dan itu bertahun-tahun yang lalu, bahkan sebelum saya menemukan istilah root relatif.
Mike

237

Haruskah saya menggunakan URL absolut atau relatif?

Jika dengan URL absolut maksud Anda URL termasuk skema (mis. Http / https) dan nama host (mis. Yourdomain.com) jangan pernah melakukan itu (untuk sumber daya lokal) karena akan mengerikan untuk memelihara dan men-debug.

Katakanlah Anda telah menggunakan URL absolut di mana-mana dalam kode Anda <img src="http://yourdomain.com/images/example.png">. Sekarang apa yang akan terjadi ketika Anda akan:

  • beralih ke skema lain (mis. http -> https)
  • beralih nama domain (test.domainanda.com -> domainanda.com)

Pada contoh pertama, apa yang akan terjadi adalah Anda akan mendapat peringatan tentang konten yang tidak aman yang diminta pada halaman tersebut. Karena semua URL Anda dikodekan untuk menggunakan http (: // domain Anda.com/images/example.png). Dan ketika menjalankan halaman Anda di https browser mengharapkan semua sumber daya dimuat di https untuk mencegah bocornya informasi.

Dalam contoh kedua ketika menempatkan situs Anda langsung dari lingkungan pengujian, itu berarti semua sumber daya masih menunjuk ke domain pengujian Anda, bukan domain langsung Anda.

Jadi untuk menjawab pertanyaan Anda tentang apakah akan menggunakan URL absolut atau relatif: selalu gunakan URL relatif (untuk sumber daya lokal).

Apa perbedaan antara URL yang berbeda?

Pertama mari kita lihat berbagai jenis url yang dapat kita gunakan:

  • http://yourdomain.com/images/example.png
  • //yourdomain.com/images/example.png
  • /images/example.png
  • images/example.png

Sumber daya apa yang coba diakses oleh URL ini di server?

Dalam contoh di bawah ini saya menganggap situs web berjalan dari lokasi berikut di server /var/www/mywebsite.

http://yourdomain.com/images/example.png

URL di atas (mutlak) mencoba mengakses sumber daya /var/www/website/images/example.png. Jenis URL ini adalah sesuatu yang selalu ingin Anda hindari karena meminta sumber daya dari situs web Anda sendiri untuk alasan yang diuraikan di atas. Namun tempat ini memang ada. Misalnya jika Anda memiliki situs web http://yourdomain.comdan Anda ingin meminta sumber daya dari domain eksternal melalui http Anda harus menggunakan ini. Misalnya https://externalsite.com/path/to/image.png.

//yourdomain.com/images/example.png

URL ini relatif berdasarkan pada skema saat ini yang digunakan dan hampir selalu harus digunakan ketika termasuk sumber daya eksternal (gambar, javascript, dll).

Apa yang dilakukan oleh jenis URL ini adalah menggunakan skema halaman saat ini. Ini berarti bahwa Anda berada di halaman http://yourdomain.comdan pada halaman itu ada sebuah tag gambar <img src="//yourdomain.com/images/example.png">yang URLnya akan selesaikan http://yourdomain.com/images/example.png.
Ketika Anda akan berada di halaman http**s**://yourdomain.comdan pada halaman itu adalah tag gambar <img src="//yourdomain.com/images/example.png">URL dari gambar akan menyelesaikan https://yourdomain.com/images/example.png.

Ini mencegah pemuatan sumber lebih https ketika tidak diperlukan dan secara otomatis memastikan sumber daya yang diminta lebih https ketika sedang dibutuhkan.

URL di atas diselesaikan dengan cara yang sama di sisi server seperti URL sebelumnya:

URL di atas (mutlak) mencoba mengakses sumber daya /var/www/website/images/example.png.

/images/example.png

Untuk sumber daya lokal, ini adalah cara yang lebih disukai untuk merujuk mereka. Ini adalah URL relatif berdasarkan pada root dokumen ( /var/www/mywebsite) dari situs web Anda. Ini berarti ketika Anda memilikinya <img src="/images/example.png">akan selalu diselesaikan /var/www/mywebsite/images/example.png.

Jika pada suatu saat Anda memutuskan untuk beralih domain itu masih akan berfungsi karena itu relatif.

images/example.png

Ini juga URL relatif walaupun sedikit berbeda dari yang sebelumnya. URL ini relatif terhadap jalur saat ini. Artinya adalah ia akan menyelesaikan ke jalur yang berbeda tergantung di mana Anda berada di situs.

Misalnya ketika Anda berada di halaman http://yourdomain.comdan Anda menggunakannya <img src="images/example.png">akan menyelesaikan di server /var/www/mywebsite/images/example.pngseperti yang diharapkan, namun ketika Anda berada di halaman http://yourdomain.com/some/pathdan Anda menggunakan tag gambar yang persis sama tiba-tiba akan menyelesaikannya /var/www/mywebsite/some/path/images/example.png.

Kapan menggunakan apa?

Saat meminta sumber daya eksternal, Anda kemungkinan besar ingin menggunakan URL relatif terhadap skema (kecuali jika Anda ingin memaksakan skema yang berbeda) dan ketika berhadapan dengan sumber daya lokal Anda ingin menggunakan URL relatif berdasarkan pada root dokumen.

Contoh dokumen:

<!DOCTYPE html>
<html>
    <head>
        <title>Example</title>
        <link href='//fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700' rel='stylesheet' type='text/css'>
        <link href="/style/style.css" rel="stylesheet" type="text/css" media="screen"></style>
    </head>
    <body>
        <img src="/images/some/localimage.png" alt="">
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
    </body>
</html>

Beberapa (agak) duplikat


2
Apakah menggunakan URL absolut memuat halaman lebih cepat, dibandingkan dengan menggunakan URL relatif? (Ada waktu yang dihabiskan untuk menyelesaikan jalan relatif?)
shasi kanth

2
Perbedaan apa pun yang mungkin akan sangat kecil itu bukanlah sesuatu yang harus Anda khawatirkan jika dapat diukur sama sekali.
PeeHaa

3
Contoh memasukkan Google Jquery sebagai protocolless: <script src = "// ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script>
shasi kanth

8
Jawaban ini mengasumsikan bahwa URL absolut tidak dibuat secara dinamis yang menyelesaikan setiap masalah yang disebutkan.
Tidak ada

2
J.Money benar. Kerangka kerja web modern memiliki gagasan "membalikkan rute" untuk memungkinkan Anda membuat URL dari satu halaman ke halaman lainnya (harus ke halaman lain di situs web yang sama). Ini memungkinkan Anda untuk memberi nama ke URL dan kemudian menggunakan nama ini alih-alih URL. Dengan begitu, jika Anda ingin mengubah URL, Anda dapat mengubah URL di satu tempat, karena di mana pun Anda hanya merujuk URL itu dengan namanya.
Kevin Wheeler

65

Lihat ini: http://en.wikipedia.org/wiki/URI_scheme#Generic_syntax

foo://username:password@example.com:8042/over/there/index.dtb;type=animal?name=ferret#nose
\ /   \________________/\_________/ \__/            \___/ \_/ \_________/ \_________/ \__/
 |           |               |       |                |    |       |           |       |
 |       userinfo         hostname  port              |    |       parameter query  fragment
 |    \_______________________________/ \_____________|____|____________/
scheme                  |                               | |  |
 |                authority                           |path|
 |                                                    |    |
 |            path                       interpretable as filename
 |   ___________|____________                              |
/ \ /                        \                             |
urn:example:animal:ferret:nose               interpretable as extension

Url absolut termasuk bagian sebelum bagian "jalan" - dengan kata lain, termasuk skema ( httpdalam http://foo/bar/baz) dan nama host (foo in http://foo/bar/baz) (dan port opsional, userinfo dan port).

URL relatif dimulai dengan jalur.

Url absolut, yah, absolut: lokasi sumber daya dapat diselesaikan hanya dengan melihat url itu sendiri. Url relatif dalam arti tidak lengkap: untuk menyelesaikannya, Anda memerlukan skema dan nama host, dan ini biasanya diambil dari konteks saat ini. Misalnya, di halaman web di

http://myhost/mypath/myresource1.html

Anda bisa memasang tautan seperti itu

<a href="pages/page1">click me</a>

Dalam hrefatribut tautan, URL relatif digunakan, dan jika diklik, harus diselesaikan untuk mengikutinya. Dalam hal ini, konteks saat ini adalah

http://myhost/mypath/myresource1.html

jadi skema, nama host, dan jalur utama diambil dan dipertanggungjawabkan pages/page1, menghasilkan

http://myhost/mypath/pages/page1

Jika tautannya adalah:

<a href="/pages/page1">click me</a>

(perhatikan tampilan /di awal url) maka itu akan diselesaikan sebagai

http://myhost/pages/page1

karena pimpinan /menunjukkan akar dari host.

Dalam aplikasi web, saya akan menyarankan untuk menggunakan url relatif untuk semua sumber daya milik aplikasi Anda. Dengan begitu, jika Anda mengubah lokasi halaman, semuanya akan terus berfungsi. Sumber daya eksternal apa pun (bisa halaman sepenuhnya di luar aplikasi Anda, tetapi juga konten statis yang Anda kirim melalui jaringan pengiriman konten) harus selalu diarahkan untuk menggunakan url absolut: jika Anda tidak ada sama sekali tidak ada cara untuk menemukannya, karena mereka berada di server yang berbeda.


9
URL relatif tidak perlu dimulai dengan jalur URL. //example.com/…, ?foobardan #foobarjuga URL relatif dan tidak memulai dengan jalur URL (well ok, karena ?foobarAnda dapat mengatakan itu memang dimulai dengan jalur kosong ).
Gumbo

@ Gumbo, apakah //example.com/…-type URL disebut relatif? itu baru bagiku.
törzsmókus

3
@ törzsmókus Dalam hal RFC 2396 : “Referensi URI relatif dibedakan dari URI absolut karena tidak dimulai dengan nama skema.”
Gumbo

50

Asumsikan kita sedang membuat subsite yang file-nya ada di folder http://site.ru/shop .

1. URL absolut

Link to home page
href="http://sites.ru/shop/"

Link to the product page
href="http://sites.ru/shop/t-shirts/t-shirt-life-is-good/"

2. URL relatif

Link from home page to product page
href="t-shirts/t-shirt-life-is-good/"

Link from product page to home page
href="../../"

Meskipun URL relatif terlihat lebih pendek daripada absolut, tetapi URL absolut lebih disukai, karena tautan dapat digunakan tidak berubah pada halaman situs mana pun.

Kasus menengah

Kami telah mempertimbangkan dua kasus ekstrem: URL relatif "absolut" absolut dan "absolut". Tapi semuanya relatif di dunia ini. Ini juga berlaku untuk URL. Setiap kali Anda mengatakan tentang URL absolut, Anda harus selalu menentukan relatif terhadap apa.

3. URL protokol-relatif

Link to home page
href="//sites.ru/shop/"

Link to product page
href="//sites.ru/shop/t-shirts/t-shirt-life-is-good/"

Google merekomendasikan URL tersebut. Namun sekarang, secara umum dianggap bahwa http: // dan https: // adalah situs yang berbeda.

4. URL relatif-root

Yaitu relatif terhadap folder root domain.

Link to home page
href="/shop/"

Link to product page
href="/shop/t-shirts/t-shirt-life-is-good/"

Ini adalah pilihan yang baik jika semua halaman berada dalam domain yang sama. Saat Anda memindahkan situs Anda ke domain lain, Anda tidak perlu melakukan penggantian massal nama domain di URL.

5. URL relatif-dasar (relatif-halaman-relatif)

Tag <base> menentukan URL dasar, yang secara otomatis ditambahkan ke semua tautan dan jangkar relatif. Tag dasar tidak memengaruhi tautan absolut. Sebagai URL dasar, kami akan menentukan laman beranda: <base href = "http://sites.ru/shop/">.

Link to home page
href=""

Link to product page
href="t-shirts/t-shirt-life-is-good/"

Sekarang Anda dapat memindahkan situs Anda tidak hanya ke domain apa pun, tetapi di subfolder apa pun. Perlu diingat bahwa, meskipun URL terlihat relatif, sebenarnya URL itu absolut. Terutama memperhatikan jangkar. Untuk menavigasi dalam halaman saat ini kita harus menulis href = "t-shirt / t-shirt-life-is-good / # comments" not href = "# comments". Yang terakhir akan membuang di halaman rumah.

Kesimpulan

Untuk tautan internal, saya menggunakan URL relatif-dasar (5). Untuk tautan eksternal dan buletin saya menggunakan URL absolut (1).


1
jawaban yang bagus Sayang sekali itu tetap terlalu rendah pada halaman untuk dilihat orang. menjawab banyak komentar pada jawaban lain.
oligofren

24

Sebenarnya ada tiga jenis yang harus dibahas secara eksplisit. Dalam praktiknya meskipun URL telah diabstraksikan untuk ditangani di tingkat yang lebih rendah dan saya akan mengatakan bahwa pengembang dapat menjalani seluruh hidup mereka tanpa menulis satu URL pun dengan tangan.

Mutlak

URL absolut mengikat kode Anda ke protokol dan domain. Ini dapat diatasi dengan URL dinamis.

<a href=“https://dev.example.com/a.html?q=”>https://dev.example.com/a.html?q=</a>

Pro Kelebihan:

  1. Control - Subdomain dan protokol dapat dikontrol. Orang yang masuk melalui subdomain yang tidak jelas akan disalurkan ke subdomain yang tepat. Anda dapat melompat-lompat antara aman dan tidak aman yang sesuai.

  2. Dapat Dikonfigurasi - Pengembang menyukai hal-hal yang mutlak. Anda dapat merancang algoritma yang rapi saat menggunakan URL absolut. URL dapat dibuat dapat dikonfigurasi sehingga URL dapat diperbarui di seluruh situs dengan satu perubahan dalam satu file konfigurasi.

  3. Clairvoyance - Anda dapat mencari orang-orang yang menggores situs Anda atau mungkin mengambil beberapa tautan eksternal tambahan.


Root Relative

Root Relative URLs mengikat kode Anda ke url dasar. Ini dapat diatasi dengan URL dinamis dan / atau tag dasar .

<a href=“/index.php?q=”>.example.com/index.php?q=</a>

Root Pro Relatif:

  1. Dapat Dikonfigurasi - Tag dasar membuatnya relatif terhadap setiap root yang Anda pilih untuk membuat peralihan domain dan menerapkan template dengan mudah.

Relatif

URL relatif mengikat kode Anda ke struktur direktori. Tidak ada cara untuk mengatasi ini. URL relatif hanya berguna dalam sistem file untuk melintasi direktori atau sebagai jalan pintas untuk tugas kasar.

<a href=“index.php?q=”>index.php?q=</a>
<link src=“../.././../css/default.css” />

Kekurangan relatif:

  1. BINGUNG - Berapa banyak titik itu? berapa folder itu? Di mana file itu? Mengapa itu tidak berhasil?

  2. PEMELIHARAAN - Jika suatu file secara tidak sengaja dipindahkan sumber daya berhenti memuat, tautan mengirim pengguna ke halaman yang salah, data formulir mungkin dikirim ke halaman yang salah. Jika file MEMBUTUHKAN untuk dipindahkan semua sumber daya yang akan berhenti memuat dan semua tautan yang akan salah perlu diperbarui.

  3. JANGAN SKALA - Ketika halaman web menjadi lebih kompleks dan tampilan mulai digunakan kembali di beberapa halaman, tautan relatif akan relatif terhadap file yang dimasukkan. Jika Anda memiliki cuplikan navigasi HTML yang akan ada di setiap halaman, maka relatif akan relatif ke banyak tempat yang berbeda. Hal pertama yang disadari orang ketika mereka mulai membuat template adalah mereka membutuhkan cara untuk mengelola URL.

  4. KOMPUTED - Diimplementasikan oleh browser Anda (mudah-mudahan sesuai dengan RFC). Lihat bab 5 dalam RFC3986 .

  5. OOPS! - Kesalahan atau kesalahan ketik dapat menyebabkan perangkap laba-laba.


Evolusi Rute

Pengembang telah berhenti menulis URL dalam arti sedang dibahas di sini. Semua permintaan untuk file indeks situs web dan berisi string kueri, alias rute. Rute dapat dianggap sebagai URL mini yang memberi tahu aplikasi Anda konten yang akan dihasilkan.

<a href="<?=Route::url('named_url', array('first' => 'my', 'last' => 'whacky'))?>">
    http://dev.example.com/index.php/my:whacky:url
</a>

Rute Pro:

  1. Semua keuntungan dari url absolut.
  2. Penggunaan karakter apa pun di URL.
  3. Lebih banyak kontrol (Baik untuk SEO).
  4. Kemampuan menghasilkan URL secara algoritmik. Ini memungkinkan URL dapat dikonfigurasi. Mengubah URL adalah satu perubahan dalam satu file.
  5. Tidak perlu untuk 404 tidak ditemukan. Rute mundur dapat menampilkan peta situs atau halaman kesalahan.
  6. Keamanan yang nyaman dari akses tidak langsung ke file aplikasi. Pernyataan penjaga dapat memastikan bahwa semua orang tiba melalui saluran yang tepat.
  7. Kepraktisan dalam pendekatan MVC.

Saya ambil

Kebanyakan orang akan menggunakan ketiga bentuk dalam proyek mereka dengan cara tertentu. Kuncinya adalah memahami mereka dan memilih yang paling cocok untuk tugas itu.


Anda kehilangan URL relatif protokol, yang jauh lebih baik daripada URL yang sepenuhnya absolut. URL absolut menyusahkan ketika memutakhirkan skema (kebanyakan, ke HTTPS), URL relatif memperbaikinya.
Tobu

@Tobu Hanya melayani semuanya melalui HTTPS.
Tidak ada

Catatan: sepertinya Anda menggunakan kutipan tipografi di sebagian besar contoh kode Anda di atas. Anda mungkin ingin memperbaikinya.
domsson

Dan jenis url apa yang memiliki titik pertama? Misalnya "./index.html"
Narvalex

Bisakah Anda menguraikan sedikit tentang Clairvoyance ? Jika Anda menggunakan URL "Root Relative", mengapa Anda tidak dapat melihat orang-orang menggores situs Anda?
Lovethenakedgun

6

Jika itu untuk digunakan dalam situs web Anda, lebih baik menggunakan URL relatif, seperti ini jika Anda perlu memindahkan situs web ke nama domain lain atau hanya debug secara lokal, Anda bisa.

Lihatlah apa yang dilakukan stackoverflow (ctrl + U di firefox):

<a href="/users/recent/90691"> // Link to an internal element

Dalam beberapa kasus mereka menggunakan url absolut:

<link rel="stylesheet" href="http://sstatic.net/so/all.css?v=5934">

... tapi ini hanya praktik terbaik untuk meningkatkan kecepatan. Dalam kasusmu, sepertinya kau tidak melakukan hal seperti itu jadi aku tidak akan khawatir.


6

Saya harus tidak setuju dengan mayoritas di sini.

Saya pikir skema URL relatif "baik" ketika Anda ingin cepat mendapatkan sesuatu dan berjalan dan tidak berpikir di luar kotak, terutama jika proyek Anda kecil dengan sedikit pengembang (atau hanya diri Anda sendiri).

Namun, begitu Anda mulai bekerja pada sistem yang besar dan berlemak di mana Anda berganti domain dan protokol setiap saat, saya percaya bahwa pendekatan yang lebih elegan sedang dilakukan.

Ketika Anda membandingkan URL absolut dan relatif pada intinya, Absolute menang. Mengapa? Karena itu tidak akan pernah rusak. Pernah. URL absolut persis seperti yang dikatakannya. Tangkapannya adalah ketika Anda harus MEMELIHARA URL absolut Anda.

Pendekatan yang lemah untuk menghubungkan URL absolut sebenarnya sulit mengkodekan seluruh URL. Bukan ide yang bagus, dan mungkin penyebab mengapa orang melihat mereka sebagai berbahaya / jahat / menjengkelkan untuk dipertahankan. Pendekatan yang lebih baik adalah menulis sendiri generator URL yang mudah digunakan. Ini mudah untuk ditulis, dan bisa sangat luar biasa kuat - secara otomatis mendeteksi protokol Anda, mudah untuk mengkonfigurasi (secara harfiah mengatur URL sekali untuk seluruh aplikasi), dll, dan itu menyuntikkan domain Anda dengan sendirinya. Hal yang menyenangkan tentang itu: Anda melakukan pengkodean menggunakan URL relatif, dan pada saat aplikasi dijalankan memasukkan URL Anda sebagai absolut penuh dengan cepat. Luar biasa.

Melihat bagaimana hampir semua situs modern menggunakan semacam back-end yang dinamis, itu adalah kepentingan terbaik dari situs tersebut untuk melakukannya dengan cara itu. URL absolut melakukan lebih dari sekedar memastikan Anda ke mana mereka tunjuk- mereka juga dapat meningkatkan kinerja SEO.

Saya mungkin menambahkan bahwa argumen bahwa URL absolut entah bagaimana akan mengubah waktu buka halaman adalah mitos. Jika domain Anda memiliki berat lebih dari beberapa byte dan Anda menggunakan modem dial-up pada 1980-an, tentu saja. Tapi itu tidak terjadi lagi. https://stackoverflow.com/ adalah 25 byte, sedangkan file "topbar-sprite.png" yang mereka gunakan untuk area nav situs berbobot 9+ kb. Itu berarti bahwa data URL tambahan .2% dari data yang dimuat dibandingkan dengan file sprite, dan file itu bahkan tidak dianggap sebagai hit kinerja besar.

Gambar latar belakang satu halaman yang besar, tidak dioptimalkan, jauh lebih mungkin memperlambat waktu muat Anda.

Posting menarik tentang mengapa URL relatif tidak boleh digunakan ada di sini: http://yoast.com/relative-urls-issues/

Masalah yang dapat timbul dengan kerabat, misalnya, adalah bahwa kadang-kadang pemetaan server (jangan khawatir tentang proyek besar, kacau) tidak sejalan dengan nama file dan pengembang dapat membuat asumsi tentang URL relatif yang hanya tidak benar. Saya baru saja melihat hari ini di proyek yang sedang saya jalani dan itu membuat seluruh halaman turun.

Atau mungkin pengembang lupa untuk mengganti pointer dan tiba-tiba google mengindeks seluruh lingkungan pengujian Anda. Whoops- duplikat konten (buruk untuk SEO!).

Mutlak bisa berbahaya, tetapi ketika digunakan dengan benar dan dengan cara yang tidak dapat merusak bangunan Anda, terbukti lebih dapat diandalkan. Lihatlah artikel di atas yang memberikan banyak alasan mengapa generator url Wordpress sangat luar biasa.

:)


1
Ketika Anda mengatakan URL absolut, maksud Anda URL lengkap atau gunakan /untuk menautkan ke jalur basis? yaitu /products/wallets/thing.htmlsebagai lawan thing.htmldan bukanhttp://www.myshop.com/products/wallets/thing.html
Bradley Flood

Saya percaya, dengan menambahkan "/" akan selalu relatif terhadap root domain. Jadi, jika domain Anda adalah "www.example.com", referensi apa pun yang dikodekan sebagai "/image1.jpg" akan ditafsirkan sebagai "www.example.com/image1.jpg". Item tanpa garis miring utama ditafsirkan sebagai relatif terhadap akar permintaan. Ketika saya mengatakan "URL absolut", maksud saya url yang sepenuhnya memenuhi syarat. Saya ngeri untuk mengirim tautan MSDN melalui internet tetapi ini sebenarnya adalah rincian yang cukup bagus: msdn.microsoft.com/en-us/library/windows/desktop/…
dudewad

Ini adalah praktik terbaik saat ini meskipun banyak orang belum menyadarinya. Saya suka Rute, seperti di Kohana di mana Anda dapat menggunakan echo Route::url('route_name')untuk membuat URL absolut menggunakan URL situs dan informasi rute dengan opsi untuk membuatnya di atas HTTPS.
Tidak ada

Saya merasa perlu menunjukkan bahwa modem dialup tidak tertinggal di tahun 80-an. Ada banyak orang sekarang yang tidak punya pilihan selain dialup atau internet satelit sangat mahal super mahal ... dan jika Anda miskin, apa yang bisa lebih baik daripada dialup gratis? Sangat mengganggu saya melihat pengembang yang percaya bahwa dialup tidak ada lagi. Diperlukan 5-10 menit (!!!) untuk masuk ke situs web bank saya di dialup ... Paypal, Amazon dan Ebay tidak jauh lebih baik. Egg Cave (situs hewan peliharaan virtual) dan Facebook hanya tidak berfungsi pada dialup. Itu mempengaruhi banyak orang yang tinggal di daerah pedesaan.
Kat Cox

Oke, ya, sementara ada beberapa orang di dialup, sebagian besar (luas) pengguna tidak di dialup. Ini juga ada hubungannya dengan demografis. Jika Anda memotret untuk mendapatkan hasil ultra-mega yang sangat besar, maka mulailah memotong domain Anda dari URL Anda. Tetapi poin utama dari komentar itu adalah untuk menggarisbawahi bahwa kinerja biasanya ditemukan di area lain - Anda bisa mendapatkan semua waktu transfer yang Anda hilangkan dalam url bytes dengan mengoptimalkan satu gambar. tetapi, jika 20% atau lebih dari pengguna Anda menggunakan dialup, saya kira itu penting. Pada 2015, dan untuk semua tujuan praktis, itu tidak terjadi.
dudewad

4

Dalam kebanyakan kasus, URL relatif adalah cara untuk digunakan, mereka bersifat portabel, yang berarti jika Anda ingin mengangkat situs Anda dan meletakkannya di tempat lain yang akan berfungsi secara instan, mengurangi kemungkinan berjam-jam debugging.

Ada artikel yang lumayan bagus tentang absolut vs URL relatif , coba lihat.


4

URL yang dimulai dengan skema URL dan skema khusus bagian ( http://, https://,ftp:// , dll) adalah URL absolut.

URL lain mana pun adalah URL relatif dan membutuhkan URL dasar tempat URL relatif diselesaikan (dan karenanya bergantung pada) yang merupakan URL sumber daya yang digunakan referensi jika tidak dinyatakan sebaliknya.

Lihatlah RFC 2396 - Lampiran C untuk contoh penyelesaian URL relatif.


3

Katakanlah Anda memiliki situs www.yourserver.com. Di direktori root untuk dokumen web Anda memiliki sub-directoy gambar dan Anda memiliki myimage.jpg.

URL absolut menentukan lokasi persis dokumen, misalnya:

http://www.yourserver.com/images/myimage.jpg

URL relatif menentukan lokasi relatif ke direktori saat ini , misalnya, mengingat Anda berada di direktori web root gambar Anda di:

images/myimage.jpg

(relatif terhadap direktori root)

Anda harus selalu menggunakan URL relatif jika memungkinkan. Jika Anda memindahkan situs ke www.anotherserver.com, Anda harus memperbarui semua URL absolut yang mengarah ke www.yourserver.com, yang relatif akan tetap berfungsi apa adanya.


0

Untuk setiap sistem yang mendukung resolusi URI relatif, URI relatif dan absolut memiliki tujuan yang sama: referensi. Dan mereka dapat digunakan secara bergantian. Jadi, Anda dapat memutuskan dalam setiap kasus secara berbeda. Secara teknis, mereka memberikan referensi yang sama .

Lebih tepatnya, dengan setiap URI relatif sudah ada URI absolut. Dan itu adalah basis-URI yang relatif diselesaikan oleh URI. Jadi URI relatif sebenarnya adalah fitur di atas URI absolut.

Dan itu juga mengapa dengan URI relatif Anda dapat melakukan lebih banyak seperti dengan URI absolut saja - ini sangat penting untuk situs web statis yang sebaliknya tidak bisa fleksibel untuk dipelihara dibandingkan dengan URI absolut.

Efek positif dari resolusi URI relatif ini dapat dimanfaatkan untuk pengembangan aplikasi web yang dinamis juga. Ketidakfleksibelan absolut yang diperkenalkan oleh URI juga lebih mudah untuk diatasi dalam lingkungan yang dinamis, sehingga bagi beberapa pengembang yang tidak yakin tentang resolusi URI dan bagaimana menerapkan dan mengelolanya dengan benar (tidak selalu mudah), sering memilih untuk menggunakan absolut URI di bagian dinamis situs web karena mereka dapat memperkenalkan fitur dinamis lainnya (mis. Variabel konfigurasi yang berisi awalan URI) sehingga dapat mengatasi ketidakfleksibelan.

Jadi apa untungnya menggunakan URI absolut? Secara teknis tidak ada, tapi saya akan mengatakan: URI relatif lebih kompleks karena mereka perlu diselesaikan terhadap apa yang disebut basis absolut-URI. Bahkan resolusinya secara tegas ditentukan sejak bertahun-tahun, Anda mungkin menabrak klien yang memiliki kesalahan dalam resolusi URI. Karena URI absolut tidak memerlukan resolusi apa pun, penggunaan URI absolut tidak berisiko mengalami perilaku klien yang salah dengan resolusi URI relatif. Jadi seberapa tinggi risiko itu sebenarnya? Sangat jarang. Saya hanya tahu tentang satu browser Internet yang memiliki masalah dengan resolusi URI relatif. Dan itu tidak umum tetapi hanya dalam kasus yang sangat (tidak jelas).

Di sebelah klien HTTP (peramban), mungkin lebih rumit untuk penulis dokumen atau kode hypertext juga. Di sini URI absolut memiliki manfaat yang lebih mudah untuk diuji, karena Anda dapat memasukkannya apa adanya ke dalam bilah alamat browser Anda. Namun, jika itu bukan hanya pekerjaan satu jam Anda, paling sering lebih bermanfaat bagi Anda untuk benar-benar memahami penanganan URI absolut dan relatif sehingga Anda benar-benar dapat memanfaatkan manfaat dari tautan relatif.


-4

Saya sungguh-sungguh merekomendasikan URL relatif untuk menunjuk bit dari situs yang sama ke bit lain dari situs yang sama.

Jangan lupa bahwa perubahan ke HTTPS - bahkan jika di situs yang sama - akan membutuhkan URL absolut.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.