MikoAndras.hu

Mikó András

Webfejlesztő tudásbázis, bevezetés

Az előző oldalon szerepelt a protokoll, a hosztnév és a port megadási lehetősége, nézzük mi minden tartozhat még egy URL-hez.

Az elérni kívánt erőforrás útvonala a szolgáltatáson belül

Leginkább a weboldalakat kiszolgáló HTTP protokollra jellemező, hogy egy szerveren nem csak egy weboldal foglal helyet, hanem egy több oldalból álló honlap. Ezeket az oldalakat viszont meg kell tudni különböztetni egymástól. Ezt az útvonalakkal tudjuk megtenni, mivel egy útvonalon csak egy bizonyos tartalom található, az viszont megtörténhet, hogy ugyanarra a tartalomra két útvonal is mutat (ez a keresőrobotok szempontjából elég nagy hiba, és lepontozást vonhat maga után, de ez egy másik témakör).

Amire az útvonal megadásánál érdemes figyelni, hogy – bár a modern böngészők támogatják az ékezetes betűket – érdemes az angol ABC kisbetűit, valamint számokat és kötőjelet használni. Szintén kerülendő a csak kis és nagybetűs írásmódjukban különböző útvonalak használata, mert ez linuxos alapokon (a legtöbb tárhelyen) megkülönböztethető, windows rendszerben azonban nem duplikálható, mivel ott a kis és nagybetűs file-ok nem különböznek egymástól.

Egy második indok az angol 26 kisbetű és a számok használatára történelmi indokoltságú. Annak idején nem gondoltak a – Amerikához képest – tengerentúli nyelvek karaktereire, ezért az alapkoncepció ezeket nem is támogatja.

Mind a mai napig csak kerülőmegoldásokkal lehetséges akár a hosztnévbe, akár az útvonalba ékezetes betűkkel dolgozni. Ez azt jelenti, hogy az /árvíztűrő-tükörfúrógép/ útvonal, ami magyar nyelven 22 karakter hosszan leírható (a / jeleket nem számolva), a böngészőből az alábbi formában kerül elküldésre:

GET /%C3%A1rv%C3%ADzt%C5%B1r%C5%91-t%C3%BCk%C3%B6rf%C3%BAr%C3%B3g%C3%A9p/ HTTP1.1
...

Ez bizony már 67 karakter. A webszerverek képesek lehetnek ugyan szinte végtelen útvonalak feldolgozására, de itt is a szabvány határaiba ütközünk: Az Internet Explorer például – jelenlegi legújabb 8-as verziójában is – maximum 2083 karakter hosszú URL-t képes kezelni (ez protokollmeghatározással, hosztnévvel és paraméterekkel együtt értendő).

Mivel a szóköz is speciális karakternek számít, és elküldéskor megháromszorozódik a hossza (%20 lesz belőle), ezért érdemes kötőjelet vagy aláhúzást használni helyette.

Paraméterek

Amióta megjelentek a dinamikus weboldalak és HTML űrlapok, azóta léteznek URL paraméterek is. (Nagy kérdés itt is a csirke és tojás problémája, ezt meghagyom házi feladatnak.)

A paraméterek formája nagyon egyszerű: az útvonalat követő első ? után minden paraméternek számít, kulcs=érték párokkal, amiket egy & jel választ el.

/?id=egy&user=mikoandras

A példában két paraméter kerül átadásra, név szerint id és user, az értékeik pedig egy és mikoandras a megfelelő sorrendben.

Ilyen esetekre jó példa a munkamenet-azonosítók elküldése akkor, ha a böngésző nem ismeri/nem támogatja/tiltja a sütik használatát, illetve a GET metódussal elküldött űrlapok.

Ide is érvényes az előbb említett karakterhasználati szabály. A kulcsokban főképp azért, mert a paramétereket feldolgozó nyelvnek tudnia kell azokat azonosítani, és ebből remek galibák tudnak kerekedni, ha idevesszük a karakterkódolás egyébként sem egyszerű hasfájásait.

Darabszámát és értékeit tekintve csak az URL hossza szab korlátot, illetve a fejlesztő fantáziája. Az itt átadott értékek általában egyszerű szöveges értékek (nem szám és nem boolean, hacsak a használt nyelv nem alkalmaz auto-casting-ot), illetve tömb lehet.

Ez nem összekeverendő azzal az esettel, amikor az érték egy JSON, mivel abban az esetben is egy rövidebb-hosszabb szöveg kerül átadásra, csak megtörténik az auto-casting, a típusváltás, és ezért látszik a programnyelven belül már komplex objektumként!

Oldalon belüli azonosító

A fentieken kívül már csak egy része maradt az URL-nek. Ezt a webes világban oldalon belüli azonosítóként szoktuk használni.

A linkeknek két nagy csoportja van: az aktuális oldalról elmutató (ez lehet ugyanazon honlapon belül, vagy másik domain alatt futó is), illetve az aktuális oldal egy másik pontjára irányuló is.

Ez utóbbihoz használatos az oldalon belüli azonosító.

...
<a href="#insite">oldalon belül</a>
...
<a href="http://example.com/utvonal/#path">másik domain-en belül</a>
...
<a name="insite"></a>
...

A linkben megadott # mutatja, hogy a kért oldalon belül is egy bizonyos pontot szeretnék látni. A példában szereplő első link egy aktuális oldalon belüli részre mutat, a második egy más domain-en lévő oldal egy bizonyos részére. (A link azt mutatja meg, hogy a teljes URL szerkezet is használható ilyen esetekben, annak ellenére, hogy nem mutat másik domain-re.)

Kattintáskor a #-jel mögötti néven elnevezett a tag-et keresi meg a kért oldalon, és azt helyezi az oldal tetejére, amennyire csak lehet. Ha a megnevezett horgony utáni tartalom rövidebb, mint ami magasságában kitöltené az ablakot, úgy a böngésző az oldal aljára fog görgetni.

A fenti korlátozások itt is érvényesek.
Érdemes azonban arra is odafigyelni, hogy ezeket a részeit az URL-nek – mivel kliens-oldali navigálásra lett tervezve – a böngésző nem küldi el a szervernek, hanem a kapott oldalon belül már saját maga értelmezi, és szükség esetén odagörget.

Létezik egy kerülő megoldás: ha kliens oldali szkript-tel feldolgozzuk, és normál – nem oldalon belüli – paraméterként elküldjük a szervernek.

Rövidítések

A webes használat során előfordul, hogy egy-egy linknek nem minden része van meg egy HTML dokumentumban. Ezekben az esetekben a böngésző – a megfelelő szabályok alkalmazása mellett – kipótolja a hiányzó részt.

Ha csak egy ?-es normál vagy #-os oldalon belüli paraméter/paraméterlista szerepel, akkor az elé az aktuális oldal linkjét illeszti, és kattintáskor ezt tölti be:

...
?user=mikoandras => http://example.com/utvonal/?user=mikoandras
...
#abbrevs         => http://example.com/utvonal/#abbrevs
...

Ha bármilyen egyéb név szerepel, akkor az aktuális URL-t, a legutolsó / jelig kimásolja, és ezt illeszti a link elé:

...
kepek/mikoa.jpg  => http://example.com/utvonal/kepek/mikoa.jpg
...

Amennyiben egy ilyen link / jellel kezdődik, az azt jelenti, hogy az aktuális honlap gyökérkönyvtárából induljunk ki, tehát:

...
/kepek/mikoa.jpg => http://example.com/kepek/mikoa.jpg
...

Ezt meg lehet csavarni annyival, hogy elhelyezünk egy <base> tag-et az oldal fejlécében. Ebben az esetben minden relatív – protokollt nem tartalmazó – link a megadott kiindulási ponthoz képest kerül meghatározásra:

...
<base href="http://example.com/">
...
kepek/mikoa.jpg  => http://example.com/kepek/mikoa.jpg
...

Figyeljük meg, hogy erre a linkre az előbbi példában mit kaptunk, illetve most (ez az, amelyik nem / jellel kezdődik!).

A <base> csak azokra a linkekre van hatással, amik előtt helyezkedik el.

Összefoglalás

Bízom benne, hogy a fentiekben összeszedett ismeretanyag hasznosnak bizonyul, és legalább annyira érthető is. Értékeléseket és véleményeket örömmel fogadok.

Pages: 1 2

,

Comments are currently closed.

One thought on “Webfejlesztő tudásbázis, bevezetés