[ cornacum @ 10.05.2009. 00:20 ] @
Pozdrav,

Potrebno mi je samo objasnjenje necega, ako tema nije na pravom mestu premestite je gde joj je mesto.

Kada se osniva komunikacija izmedju obicnog web browsera i servera,

1. Browser resolvuje URL u IP pomocu dns-a
2. Salje zahtev za stranicu serveru na portu 80 (default port).

E sada, ako client trazi jos nesto, da li se stalno koristi port 80 ili server otvara novi port za tog klienta?

Da li server koristi port kada salje podatke klientu?




[ Tyler Durden @ 10.05.2009. 07:20 ] @
Da, stalno se koristi port 80 na serveru.
A server otvara random portove za odgovor klijentu koji su u opsegu 1024-65535.
[ maksvel @ 10.05.2009. 07:24 ] @
Ne, server ne otvara novi port. Na klijentu se može otvoriti novi port i onda se kreira nova TCP konekcija, ali server i dalje koristi 80. I za slanje isto: klijent može otvarati različite portove, ali veb-server ostaje na 80. Ono što se može izmeniti je tzv. soket.
Sa wikipedije:
Citat:
A server may create several concurrently established TCP sockets with the same local port number and local IP address, each mapped to its own server-child process, serving its own client process. They are treated as different sockets by the operating system, since the remote socket address (the client IP address and/or port number) are different, i.e. since they have different socket pair tuples.
[ nkrgovic @ 10.05.2009. 11:31 ] @
Uhh al' ste zakomplikovali:

Server slusa na portu 80. Klijent otvara socket, sa svog lokalnog IP-a, sa nekog porta koji klijentski port sme da koristi (a koji je, zbog OS ogranicenja >1024) i otvara konekciju / TCP socket. Socket ima parametre (KlijentIP,NekiPort>1024NaKlijentu,ServerIP,Port80). Kroz taj socket klijent salje zahteve (GET, ili sta vec...), a server odgovara. Klijent moze da otvori vise od jedne konekcije, sto se tice HTTP-a tu nema nikakvih problema, svaka je nezavisna, a razlikuju se po NekiPort>1024NaKlijentu parametru.

Na serveru je, naravno, moguce promeniti ovaj port na bilo sta drugo, ali onda klijent nece znati da ga nadje, osim ako mu to neko ne javi na neki drugi nacin :) - pa on otvori konekciju sa http://neki.domen.tld:nekidrugiport/neki.url . Izuzetak je SSL, gde https:// implicira port 443.

Sam httpd server nikada ne inicira konekcije ka klijentu.

P.S. Socket JE TCP konekcija, izmedju dve masine :).
[ Mister_rap @ 10.05.2009. 12:41 ] @
Sorry za delimican off

Citat:

P.S. Socket JE TCP konekcija, izmedju dve masine :).


Socket moze koristiti UDP ! Govorim uopsteno...
[ nkrgovic @ 10.05.2009. 13:09 ] @
Citat:
Mister_rap: Socket moze koristiti UDP ! Govorim uopsteno...

Moze, ali UDP socket nije konekcija :D. Mislim, "UDP konekcija" je oksimoron - UDP salje jedan paket, kao svet za sebe...

Ajde da ne zbunjujemo ovde vise, vec su dovoljno zbunjeni.
[ Tyler Durden @ 10.05.2009. 15:14 ] @
Sad vidim da sam pogresno izrazio. Nisam htio da kazem kako server otvara kod sebe neki "visoki" port nego vraca klijentu odgovor na neki >1024 port.
:-/
[ cornacum @ 10.05.2009. 16:16 ] @
Hvala!