Password Authentication je deo HTTP 1.0 protokola koji se uglavnom implementira od strane aplikacije (barata se HTTP headerima).
TCP, UDP i IP (TCP/IP) su nizi nivoi komunikacije koje u sustini korisnik nema sta puno da "cacka", uglavnom se to preko postojecih biblioteka "sazvakano" daje korisniku (aplikaciji) na koriscenje. Ako taj modul podrzava TCP, onda je prakticno moguc bilo koji protokol koji je "iznad" njega, dakle HTTP, HTTPS, FTP, POP3 i gomila drugih. DHCP i DNS je vezan za IP (routing) protokol. TCP je zaduzen za konkretan prenos podataka.
Za Firewire i PPPOE su "izlupetali" sa specifikacijom, to je nesto skroz drugo :) Dovoljo je samo da radi TCP/IP i sve ostalo se nadograduje na to. UDP verovatno neces koristiti, to je vrlo slicno kao TCP ali bez kontrole greske (CRC) i uglavnom se koristi za nekakav streaming audio/video podataka.
Kako se konkretno radi HTTP autorizacija mozda je najlakse da pogledas primere za PHP jer se to tamo dosta koristi i ima gomila primera. U sustini je nebitan jezik sve dok se ispostuje HTTP specifikacija.
Ukratko, kada se pristupa nekoj zasticenoj stranici/adresi, server (kontroler) mora da u HTTP headeru naznaci da je tu potrebna autorizacija i onda to dovodi do toga da se u web-browseru pojavi onaj popup za unos username/password. U sledecem koraku nakon unosenja u/p, sam browser u request headeru salje Base64 enkodovane (to nije kriptovano, zato je relativno nesigurno) te podatke koje server mora da uzme i poredi sa nekom listom/bazom da li su ti podati tacni. Ako su tacni, server odgovara sa stranicom/podacima, ako nisu mora da posalje header sa statusnim kodom 403 sto znaci "Forbidden".
Kod prostijih implementacija, ovo pitanje/slanje korisnickog imena+sifre se radi u svakom zahtevu/odgovoru dok kod nesto naprednijih (sada uveliko klasika) to se radi jednom nakon cega se uspostavlja sesija pa se nadalje radi samo sa kljucem od sesije.
Evo ovde zvanican RFC oko Basic i Digest autorizacije (Digest je naprednija varijanta sa kripcijom):
http://tools.ietf.org/html/rfc2617
[Ovu poruku je menjao mikikg dana 20.07.2013. u 20:41 GMT+1]