På så vis kan alla besökare hitta till din webbplats utan att känna till hur den ska adresseras.

Vi har tidigare tittat på Whois som (än så länge) är standarden för registrering av domäner. Därför kan det vara på tiden att förklara vad en domän är och hur de används på Internet. Både domäner och IP-adresser är standarder för adressering av maskiner som regleras av ICANN. IP-adresser är numeriska adresser, exempelvis 127.0.0.1 eller 82.99.58.1 för att hastigt beskriva IPv4. En IP-adress motsvaras av en maskin som kan svara på förfrågningar, exempelvis nedladdning av en hemsidor. Även om numeriska adresser räcker långt för att lösa kommunikation mellan maskiner är de långt ifrån optimala för kommunikationen mellan människa och maskin. Till detta har vi istället DNS – ett system för automatisk översättning från textbaserade namn eller domäner till IP-adresser.

Domäners sammansättning

Innan vi dyker djupare i domänernas hierarki behöver vi definiera delar av domäner (även kallade subdomäner) och gå igenom hur domäner är sammansatta. Domäner är avsedda att avläsas från höger till vänster och delas upp med punkter. Exempel på delar är com och google som tillsammans bildar domänen google.com. Upphovet till domäners utformning kan i de flesta fall härledas från specifikationen av domänprotokollet för DNS, som vi inte bör dyka allt för djupt i. Här följer istället några av begränsningarna för domäner.

  • Delar i domännamn separeras med . (punkt)
  • Giltiga tecknen för delar är a-z, 0-9 och (bindestreck)
  • Domäner särskiljer inte versala tecken från gemena
  • Ett domännamn kan inte överstiga 253 tecken
  • En del kan inte överstiga 63 tecken
  • Ett domännamn kan inte ha fler än 127 delar

Lade du märke till att det utesluter möjligheten att registrera ett domännamn som innehåller åäö?

Å, ä och ö är inte del av den 7-bitars teckentabellen ASCII som används av domänprotokollet. För att komma runt detta finns standarden för internationella domännamn IDN, som tillåter att Unicode-tecken att kodas in i domännamn med hjälp av tillåtna ASCII-tecken. Exempelvis är miljömål.se i själva verket registrerad under xn--miljml-mua8k.se. Det inledande xn- beskriver att domänen består av så kallad punycode. Information om internationella tecken och inbördes position representeras av de tecken som följer efter det sista bindestrecket. Webbläsare översätter automatiskt punycode så att vi kan läsa och skriva på ett format som känns naturligt.

To WWW or not to WWW?

Domäner översätts till IP-adresser och kan därför något förenklat ses som pekare till enskilda maskiner. I Internets vagga var det vanligt att maskiner dedikerades till specifika uppgifter, något som nog är vanligt än idag även om dagens hårdvara i många omständigheter har kapacitet att hantera flera olika typer av tjänster parallellt. Därför har det varit mycket vanligt att tilldela maskiner domäner som beskrev deras funktioner, exempelvis mail.example.com för en mailserver, ftp.example.com för en filserver eller www.example.com för en (world wide) webbserver.

Prefixet www är alltså ett arv från en historisk konvention för namngivning av webbservrar. Idag är det något av en het potatis för de som engagerar sig, men att använda www eller inte har ingen större betydelse, utan är snarare en smakfråga. Webbservrar adresseras ofta av flera olika domäner som var för sig motsvarar en webbplats snarare än en maskin. Trots att www är ett rent kosmetiskt attribut finns det kanske fortfarande argument som talar för konventionen.

Alla vet instinktivt att jag pratar om en hemsida när jag nämner www.jajja.com. I en konversation hjälper www till att ställa om hjärnan i Internet-mode helt enkelt. Sedan är det troligt att de flesta föredrar att slippa skriva prefixet när de surfar. För övrigt märks det i reklamsammanhang att ord som avslutas med en toppdomän (som .se eller .com) kan användas som varumärken för nättjänster. För ett varumärke blir www snarare ett störande bihang än ett förtydligande. För att exemplifiera den marginella betydelsen av prefixet kan vi kika på de stora sociala medierna där Facebook valt att använda www och Twitter låtit bli.

Något som har större betydelse än www eller ej, är att se till att det alternativ man valt att inte använda sig av omdirigerar till det valda alternativet. Det vill säga om du skriver in jajja.com i din webbläsare, så borde du fortfarande hamna på vår webbplats www.jajja.com. På så vis kan alla besökare hitta till din webbplats utan att exakt känna till hur den ska adresseras. Mekanismen som används i det givna exemplet är en statuskod i svaret från webbservern som kallas 301 redirect.

Domänhierarki som utgångspunkt för gruppering av webbplatser

Delarna i domänen är tänkta att representera en hierarki på Internet. Ytterst finns toppdomänerna. De allra flesta länderna har egna toppdomäner som .se, .uk eller .us. Utöver dessa finns ett antal internationella toppdomäner som .com, .org och .net. Inom kort kan vi även förvänta oss ett antal privatägda toppdomäner sedan möjligheten att ansöka om sådana öppnats upp.

Toppdomäner är reserverade, vilket betyder att de inte får användas för adressering. Det finns även nivåer under toppdomäner som är reserverade, som .co.uk för att nämna ett exempel som de flesta är bekant med. Gemensamt för de flesta reserverade domänerna är att de tillåter registrering av subdomäner. Exempel på sådana registrerade subdomäner är google.com eller google.co.uk. Vi kan anta att en subdomän till google.com tillhör samma webbplats eller upphovsman, men det gäller tyvärr inte för samtliga subdomäner till registrerade domäner på Internet.

Det finns privata aktörer som tillåter registrering av subdomäner för autonoma webbplatser som kan vara bloggkonton, webshoplösningar, eller molnapplikationer. Det finns även aktörer som tillhandahåller registrering som helt liknar den som regleras av ICANN, där subdomäner inte har något alls att göra med den närmsta nivån ovanför. Detta är ett ämne som intresserar utvecklare av webbläsare, eftersom cookies, inte får läcka mellan olika webbplatser, men måste finnas tillgängliga för underdomäner som hör till samma webbplats. Idag har de flesta webbläsare en implementation för gruppering av webbplatser baserad på The Public Suffix List som underhålls av Mozilla. En motsvarande implementation kan även användas för att gruppera statistik för webbplatser och blir speciellt intressant om man utvecklar en spindel för indexering av innehåll och länkstruktur på Internet, likt Googlebot. I våra interna statistiksystem lever redan en sådan lösning, men varför nöja sig med den vetskapen?

com.jajja.arachne.net.Domain domain = null;
try {

    domain = new Domain("www.peat.se");
    domain.getRecord().getEntry();             // "peat.se"
    domain.isRegistered();                     // true
    domain.isSubleased();                      // false

    domain = new Domain("www.peat.co.uk");
    domain.getRecord().getEntry();             // "peat.co.uk"
    domain.isRegistered();                     // true
    domain.isSubleased();                      // false

    domain = new Domain("peat.wordpress.com");
    domain.getRecord().getEntry();             // "peat.wordpress.com"
    domain.isRegistered();                     // true
    domain.isSubleased();                      // true
    domain.getRegisteredRecord().getEntry();   // "wordpress.com"
    domain.getSubleasedRecord().getEntry();    // "peat.wordpress.com"

    domain = new Domain("peat");
    domain.isRegistered();                     // false

} catch (MalformedDomainException e) {
    e.printStackTrace();
}

Om du är sugen på att kika på mer kod så finns vår något utökade implementation för gruppering av domäner på Github. Arachne är ett projekt i fri källkod som delvis består av utbrutna komponenter från befintliga system, med utrymme för nyutvecklade element. Tanken med kodbiblioteket är att det skall erbjuda verktyg för behandling av domäner, IP-adresser, URL:er, och i framtiden kanske även för länkdata och HTML. Tillsvidare avgränsar vi oss till domäner och får säkert anledning att återkomma inom kort med ett inlägg om URL:er och hur länkar fungerar.