En URLs anatomi
A URL's anatomy
En URL
(Universal Resource Locator) används för att peka ut resurser på webben.
Det finns mycket spännande att utforska och utnyttja med URL:er i testsammanhang.
A URL
(Universal Resource Locator) is used to locate resources on the web.
There is a lot to explore and exploit about URL's in testing.
https
Protokoll-information för överföringsmetod. Brukar bestå av t.ex:
- http
- https
- file
- ftp
- o.s.v.
Om denna utelämnas fyller en webbläsare på med http
, som sedan ofta redirectas till https
av webbservern.
Protocol information for transfering data. E.g:
- http
- https
- file
- ftp
- o.s.v.
If omitted the browser generally adds http
, that often is redirected to https
by the web server.
://
hostname.
Valfritt, men nästan alltid förekommande host-namn. Detta är egentligen ett datornamn men många gånger mappar man namn på tjänster som om det vore egna datorer.
Om hostnamn utelämnas används information från webbserverns inställningar eller från .htaccess-filen i katalogen den efterfrågade resursen hämtas från på webbservern (eller närmsta sådana fil uppåt i katalogträdet om sådan saknas).
Optional but frequently used host name. Originally a computer name, but now it's often mapped to a service name as if it would be a computer name.
If omitted web server settings direct the request or the closest .htaccess file in the web server root folder is used.
myorganization.com
Obligatoriskt domän-namn. Detta består av två delar där det avslutande domän-suffixet utgörs av standardiserade 2-4 bokstäver långa landsbeteckningar eller andra reserverade strängar.
Mandatory domain name. Consist of two parts where the last part is the domain suffix.
/path/to/my/resource/
Sökvägem till efterfrågad resurs håller oftast en logisk struktur och utgör information till webbservern var den kan hitta efterfrågad resurs.
Om resursen är en fil som hämtas med file:// som protokoll kan det i vissa webbläsare accepteras att ha \ istället för / för sökvägar i Microsoft Windows.
Om path utelämnas styr webbserverinställningar eller närmsta .htaccess-filen vilken path man dirigeras till.
The path to a resource should be based on a logical structure. The path contains information to the web server what resource is requested.
If the resource is a file requested with file:// as protocol some web browsers accept substituting /
with \
for Windows based paths.
If the path is omitted the web server settings or the nearest .htaccess-file what path you get redirected to.
Potentiella felkällor
-
Hela URL:en har en egen teckenkodning (URL encoding). Ett mellanrum blir t.ex.
%20
vilket man ser ibland. Det är sällan något bekymmer för själva domännamnet eller host-namn, men det betyder att användarnamn, lösenord och parametrar eventuellt behöver kodas om så att tecken som inte får förekomma i en URL har URL encoding. - För lång URL. Om man har lång sökväg (path) och många parametrar kan sökvägen bli för lång och trunkeras då. Detta sker t.ex. om man har sessions-id:n i URL (vilket ska undvikas eftersom URL kan läsas av alla)-
Potential problems with URLs
-
The character encoding of URLs is called URL encoding. For example space become
%20
in URLs, as can sometimes be seen. For the host name or domain name this rarely poses a problem, but passwords, usernames and parameter names and parameter values might be affected and have to be re-encoded in scripts. - Very long URLs get truncated. This could happen if you have a deep resource path and a lot of parameters in the request - like for example a session token (really discouraged use since any man-in-the-middle can see the URL).
Trix med URL:er
- Undvik webbcachar: Webbservrar läser vanligen bara de parametrar de är intresserade av, så du kan oftast lägga till egna, t.ex.
minkoll=abc123
eller kanskev=2
innan andra parametrar för att undvika träffar från cache då cache jämför URL för att veta om den har ett svar sparat. - Operativsystemen på datorer har många inbyggda hjälpmedel för att felsöka kommunikationsproblem. I terminalfönster brukar man kunna skriva t.ex.
tracert
,ping
,telnet
,ipconfig
/ifconfig
och mycket mer.
Trix with URLs
- Avoid cachine: Most web servers discards parameters they aren't interrested in, but caching mechanisms don't. This mean you may add additional custom parameters to avoid caching. E.g. adding
myvariable=1234
as an additional parameter to an URL - Your computer operating system contains a myriad of tools to troubleshoot communication problems. Use your terminal to write
tracert
,ping
and much more