Bogdan Marinca wrote: > > Salut. > Lucrez la o aplicatie care trimite automat requesturi HTTP POST catre > un web site. > Este foarte important aici timpul la care respectivele requesturi > efectiv ajung sa fie preluat de scriptul care le prelucreaza pe > site. Deoarece este nevoie sa trimit multe requesturi (zeci) > in acelasi timp (ma rog, aproximativ) este necesar sa fac optimizari.
Nu se poate garanta nimic in ce priveste timpul - protocolul HTTP nu incearca sa fie de timp real. > M'am gandit de ex sa deschid in paralel sockets HTTP cu site'ul, > un pic inainte de timpul stabilit si sa nu trimit inca nimic pe ele O solutie mai putin consumatoare de resurse dar mai greu de implementat e folosirea de conexiuni persistente (keep-alive) in combinatie cu HTTP/1.1 > si abia la momentul dat sa trimit headerul POST iar apoi sa inchid > repede conexiunea TCP (probabil va fi un packet de TCP de tip RESET) > pentru ca n'am nevoie si de raspunsul serverului si nu vreau sa se faca > trafic inutil. Ba ai nevoie - vezi mai jos. > Intrebarile ar fi: > > 1. Cat de mult pot sa tin deschis un socket HTTP cu serverul fara sa > ma tem ca serverul va inchide conexiunea deoarece nu a primit nimic? Depinde de setarile si incarcarea serverului, uneori serverele foarte incarcate taie o conectare inactiva dupa 5-10 secunde. De la un minut incolo aproape orice server va taia conexiunea. De asemenea serverele de obicei limiteaza cite conexiuni permit simultan, atit global cit si de la o anume adresa IP. > 2. Cand e oportun sa inchid socketul, pentru ca nu ma intereseaza raspunsul > dat de server, fara sa ma tem ca serverul nu a luat in seama requestul? Imediat ce ai primit un raspuns de la server. Ai grija sa citesti macar prima linie - cea cu codul - ca sa verifici daca nu a fost vreo eroare. Unele tipuri de servere genereaza chiar o eroare 5xx inainte sa inchida legatura la timeout. > Multumesc mult. > > PS. Evident, aplicatia va fi executata pe Linux :) > > Bogdan Marinca Paul Chitescu -- Paul Chitescu [EMAIL PROTECTED] http://pchitescu.null.ro/ ICQ:22641673 Any spammers will be painfully squeezed into /dev/null --- Pentru dezabonare, trimiteti mail la [EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'. REGULI, arhive si alte informatii: http://www.lug.ro/mlist/
