Hur fungerar/genereras url:er för t.ex. detta forum?

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
sir88alex
Inlägg: 113
Blev medlem: 18 juni 2011, 12:53:24

Hur fungerar/genereras url:er för t.ex. detta forum?

Inlägg av sir88alex »

En väldigt bred fundering men förhoppningsvis kanske någon kan förklara lite ytligt. Jag har börjat lära mig en del HTML / PHP / SQL och bygger lite enkla hemsidor för skojs skull mest för att lära mig lite. En fundering som dök upp var hur maskineriet bakom fungerar när det gäller att generera URL för t.ex. bloggar eller forum som dessa.

Just nu gör jag en html-fil för varje sida jag skapar till mina hemsidor och adressen till sidan blir mer eller mindre vart den hamnar i stukturen + namnet, typ http://www.minhemsida/djur/igelkott.html.

Om man nu tänker sig en blog eller varför inte detta forum där användare dynamiskt kan skapa nya sidor. När en ny tråd skapas så inser jag ju att det inte skapas en ny html fil för den tråden (eller?) utan det är data som sparas i någon databas någonstans. Men hur skapas adressen till just den tråden?

För när jag nu knappar in det id (elektronikforumet.com/forum/viewtopic.php?f=43&t=84490)som har genererats för tråden i adressfältet så kommer jag ju till tråden. Hur fungerar det? Normalt finns ju kopplingen mot html-filen, men här kopplar man mot en databas?
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Hur fungerar/genereras url:er för t.ex. detta forum?

Inlägg av johano »

Enkelt förklarat så finns det kod som körs på serversidan som tar emot din request, plockar ut ID-numren från url:en och letar upp rätt post i databasen och sedan "sätter ihop" htmlkoden baserat på en mall som sedan "fylls på" med data från posten.

Det finns massvis med olika serversides tekniker och ramverk, ett populärt (om än i mina ögon rent programmeringstekniskt fruktansvärt) är Php (som detta forum använder), annars finns Python med Django eller Flask, Microsoft Asp.Net, Java Server Pages m.fl.

/johan
gunnerfeldt
Inlägg: 87
Blev medlem: 29 november 2010, 00:32:55

Re: Hur fungerar/genereras url:er för t.ex. detta forum?

Inlägg av gunnerfeldt »

Väldigt ytligt: Du behöver nog bara läsa ett par rader till i PHP läxboken så trillar myntet ner :-)
Även länken du angett borde ge dig lite ledtrådar?

viewtopic.php är ett skript som körs på servern. Skriptet använder argumenten f=43 och t=84490.
Här kan man ju gissa att t representerar topic löpnummer (id).
Nu kan du öppna sql läxboken och kolla hur man letar hämtar poster.
Voilà!!
Nerre
Inlägg: 26706
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Hur fungerar/genereras url:er för t.ex. detta forum?

Inlägg av Nerre »

Eftersom sidorna skapas dynamiskt så skapas ju också länkarna dynamiskt.

En post i databasen har ju nån form av identitet, det är den identiteten man använder för att skapa länken. Länken säger alltså i princip "hämta den här posten i databasen och skapa HTML av den".

Det här har väl egentligen inte så mycket med HTML och webbsidor att göra utan handlar om att förstå hur en databas fungerar och hur man skriver frågor mot en databas.
sir88alex
Inlägg: 113
Blev medlem: 18 juni 2011, 12:53:24

Re: Hur fungerar/genereras url:er för t.ex. detta forum?

Inlägg av sir88alex »

Självklart är det så! Insåg inte att man kunde använda url:en som argument men då blir ju hela kopplingen självklar. Tack johano, gunnerfeldt och Nerre för att ni tog er tid att förklara! Ibland behövs det bara en liten knuff i rätt riktning.
Skriv svar