Benvenuto nella nostra community, registra un account gratuito ADESSO!
Oltre 7000 persone hanno già registrato il loro account. Chiedi aiuto, conversa con aziende ed esperti del settore webhosting italiano.
Iscriviti subito! In meno di 2 minuti!




Pagina 1 di 3 123 UltimaUltima
Risultati da 1 a 15 di 31
  1. #1
    Webhosting Guru L'avatar di daniele_dll
    Data Registrazione
    Feb 2006
    Località
    Qualcuno dice Sicilia, qualche altro Nord Africa
    Messaggi
    1,535

    Linguaggi di scripting e Webserver: come lavorano?

    non so se il titolo è correttissimo, eventualmente si cambia

    allora ... io e ceccus ci stavamo scann...stavamo dibattendo su un'argomento interessante, ovvero:

    i linguaggi di scripting come interagiscono con il webserver? modalità, frequenza, funzioni e tutto quanto

    ceccus sostiene che il linguaggio di scripting, qualsiasi esso sia, per svolgere le proprie operazioni una volta caricato necessiti comunque che il webserver interagisca perché passa tutto da lui, io invece sostengo il contrario, ovvero che le chiamate del linguaggio di scripting vanno direttamente al so

    per maggiori informazioni ...
    Windows o Linux: differenze?!



  2. #2
    Webhosting Guru L'avatar di daniele_dll
    Data Registrazione
    Feb 2006
    Località
    Qualcuno dice Sicilia, qualche altro Nord Africa
    Messaggi
    1,535

    Re: Linguaggi di scripting e Webserver: come lavorano?

    Citazione Originariamente Scritto da ceccus
    Salve,
    NO...mi spiace contraddirti...ma PHP (e neppure ASP o ASPX)(e nessun altro interprete) NON fa chiamate dirette al S.O., ma vengono sempre "mediate" dal chiamante l' interprete stesso... la chiamata al Web Server, nell'esempio fatto, viene fatta per recuperare il SID (Security Identifier) con cui la richiesta deve essere fatta pervenire al sottosistema di autenticazione...Tant'è che il Processo con cui gira IIS (e anche Apache) hanno un proprio SID e PHP e altri interpreti "girano" all' interno di quel processo lì (o almeno ci gira la loro componente Proxy..più avanti vedremo che cosa è la componente Proxy)... quello che dici te sarebbe reale se l' interprete fosse "completamente" esterno...ma non lo è (e non può esserlo...per come funziona Windows)...se te guardi nella configurazione di IIS vedrai che fra le sue ISAPI Extension c'è anche una tale PHP.Dll oltre , naturalmente, al .exe che è l'interprete vero e proprio del PHP Quella Dll è la componente Proxy che si deve re-interfacciare con IIS proprio per i motivi che ti ho spiegato prima e , essendo una dll, condivide gli spazi di indirizzamento del chiamante (in gergo tecnico significa girare "in process")... E questo sistema di reperimento del SID , varia da ambiente ad ambiente... perchè su COM (che è un ambiente oltre che una "filosofia di programmazione") viene risolto in un modo...in ambiente .NET viene risolto in un'altro e le altre chiamate vengono comunque "mediate"...proprio perchè Windows (e anche altri S.O.) sono costruiti "a strati" e a "componenti"...non sono "monolitici".
    Esistono , poi, le comunicazioni cosiddette "InterProcess", ovvero fra Processi...quindi fra .exe e .exe ... è il caso , per esempio, se un componente che sta dentro un Package COM+ che vuol richiamare un altro componente che sta in un Package diverso.... i Processi sono 2 DLLHOST.exe diversi e si devono comunque poter scambiare informazioni con , appunto , il meccansimo di "InterProcess Communication"...
    Comunque, direi che la cosa si sta facendo mooolto interessante ... e al tempo stesso anche abbastanza incasinata...forse di non immediata comprensione per tutti ... personalmente sono disponibilissimo ad approfondire quello che volete...non vorrei , però, ch etale discussione risultasse di difficile comprensione per la maggioranza degli Utenti....

    Ciao !!
    si ... ma ... non è necessario passare dal webserver, per intenderci:
    come dici tu:
    fopen('cicciolina.txt')

    verrebbe eseguito in questa senquenza da php:
    php -> motore zend -> modulo di php isapi -> interfaccia esposta da IIS appositamente per queste cose -> iis -> sistema operativo
    (più o meno)

    io dico invece
    php -> motore zend -> sistema operativo

    la funzione fopen è gestita direttamente dal motore zend di php perché fa parte del subset di funzioni native esposte direttamente da lui, come del resto anche gli streams e altro

    Ora ti pongo due domande:
    - se fosse come dici tu il modulo di IIS, Apache o qualsiasi altro webserver, dovrebbe ricevere una struttura contenente i puntatori alle funzioni da usare perché al posto di usare open con dei parametri va usato il puntatore alla funzione e passare i parametri per come li vuole lui, ma non sono riuscito a trovare ciò in nessun posto del codice (open era solo per fare un'esempio)
    - all'interno del codice sono usate direttamente le chiamate standard ansi (come open, close, read e write e cosi via)

    Inoltre quello a cui ti riferisci tu non ha nulla a che fare con questo discorso ... nel senso che ... si, ogni sistema operativo ha un'identificatore di sessione, del processo, del thread, della libreria caricata in memoria e cosi via ... MA ... la libreria, in questo caso il motore zend o il modulo, non ha necessità di passare dal webserver perché è il SO che ha queste informazioni e non il webserver, che comunque può ottenere. Non so se mi sono spiegato :\

    E' il SO che ha una bella tabellona con tutte queste informazioni è sa benissimo che il motore di php è caricato da IIS e quindi è legato a quel processo e a quella specifica sessione e quindi quello specifico utente e di conseguenza se va ad eseguire chiamate per accedere ad un file che non ha i permessi su everyone e non ha i permessi sull'utente di IIS ovviamente non lo fa accedere

    Salve,
    Dimenticavo...in ambiente Windows 32 bit (e a maggior ragione in quello nuovo a 64 bit) è fatto assoluto divieto a qualsivoglia applicazione di andare ad interfacciare direttamente le risorse di sistema... ma , ogni applicazione che ne fa richiesta si deve "appoggiare" ai servizi offerti dal proprio sottosistema di riferimento ... dove per sottosistema si intende in gergo molto allargato , direttamente il S.O. , ma se la vogliamo dire in modo che più si avvicina alla realtà , sottosistema indica la parte di S.O. a cui di volta in volta l'applicazione richiede i "servigi". Sicuramente, per le applicazioni Web, il primo strato di riferimento è proprio il Server WEB.
    Tutto quello che ho scritto , chiaramente, funziona in ambiente Windows...
    In Linux ci saranno sicuramente delle differenze...se non altro dovute ad una differente organizzazione del suo Kernel.

    Ciao !!
    si ma il sotto sistema è il sistema operativo stesso per l'appunto o le funzionalità da lui offerte

    ---

    L'unica struttura passata al momento dell'inizializzazione da parte del webserver è questa
    Codice:
    static sapi_module_struct isapi_sapi_module = {
        "isapi",                        /* name */
        "ISAPI",                        /* pretty name */
                                        
        php_isapi_startup,                /* startup */
        php_module_shutdown_wrapper,    /* shutdown */
    
        NULL,                            /* activate */
        NULL,                            /* deactivate */
    
        sapi_isapi_ub_write,            /* unbuffered write */
        NULL,                            /* flush */
        NULL,                            /* get uid */
        NULL,                            /* getenv */
    
        php_error,                        /* error handler */
    
        sapi_isapi_header_handler,        /* header handler */
        sapi_isapi_send_headers,        /* send headers handler */
        NULL,                            /* send header handler */
    
        sapi_isapi_read_post,            /* read POST data */
        sapi_isapi_read_cookies,        /* read Cookies */
    
        sapi_isapi_register_server_variables,    /* register server variables */
        NULL,                            /* Log message */
        NULL,                            /* Get request time */
    
        STANDARD_SAPI_MODULE_PROPERTIES
    };
    e viene utilizzata qua:
    Codice:
                sapi_startup(&isapi_sapi_module);
                if (isapi_sapi_module.startup) {
                    isapi_sapi_module.startup(&sapi_module);
                }
    all'interno della DllMain (che si trova in fondo al file)

    sapi_startup esegue alcune operazioni comuni a tutti o quasi i webservers e poi ritorna la palla
    l'if, presente subito sotto la chiamata sapi_startup, si occupa di richiamare
    php_isapi_startup

    ovvero:
    Codice:
    static int php_isapi_startup(sapi_module_struct *sapi_module)
    {
        if (php_module_startup(sapi_module, &php_isapi_module, 1)==FAILURE) {
            return FAILURE;
        } else {
            bTerminateThreadsOnError = (zend_bool) INI_INT("isapi.terminate_threads_on_error");
            return SUCCESS;
        }
    }
    che richiama php_module_startup che si occupa di inizializzare il tutto e di lavorare poi per come serve

    la dll esporta questi simboli:
    Codice:
    HttpFilterProc
    GetFilterVersion
    HttpExtensionProc
    GetExtensionVersion
    e IIS richiama in primis:
    - HttpFilterProc, usato solo per gestire correttamente l'autenticazione (almeno cosi a prima vista)
    - HttpExtensionProc, usato per gestire l'esecuzione dello script richiesto

    Se tu guardi i sorgenti di php, ovvero:
    php-5.1.4/sapi/isapi/php5isapi.c

    potrai controllare tu stesso tutto quello che ti ho postato qui

    e se andiamo a fare le analisi su tutti gli altri moduli ci sarà la stessa situazione

    pensa anche semplicemente ad una cosa ... la compressione in BZip dei file viene eseguita dalla libbz2 (o qualcosa del genere) che è linkata a php e ovviamente fa uso delle sole funzioni standard e basta

    e come'è cosi per php lo sarà anche per python, perl, ruby, lua, asp e aspx (anche se magari questi due sono meglio integrati)

    comunque se io domani sviluppassi un loader apposito per le librerie isapi sarei in grado di caricare php, asp e aspx senza particolari problemi perché queste solo librerie isapi e le uniche informazioni, a parte alcune strutture interne per l'inizializzazione, sono quelle riguardanti la richiesta eseguita dall'utente

  3. #3
    Windows Evangelist
    Data Registrazione
    Sep 2006
    Località
    Siena
    Messaggi
    1,592

    Re: Linguaggi di scripting e Webserver: come lavorano?

    Salve,
    Non si tratta di scannamento...se viene preso come tale...beh...chiaramente..non posto più...
    Allora, tengo a precisare che tutto quello che ho scritto si riferisce al S.O. Windows...come ho scritto nell' altro Thread....
    I processi in cui viene eseguito il Web Server (e non IIS) sono i "famosi" w3wp.exe ... essi sono "isolati" dal resto del sistema, ma coloquiano con lui in modo pressochè costante... (inteinfo.exe è il loro "controllore"...sono preocessi separati perchè se ne va giù uno... l'altro continua a lavorare tranquillamente...non era così, per esempio, in IIS 5.0)
    Poi, esiste un'altro concetto da tirare in ballo....ed è l' impersonate ...
    Se fosse come dici te...quando accedi ad una cartella , dovresti dare l'accesso direttamente al processo che lo fa ... o all'utente che lo rappresenta... Ma non è così... sappiamo tutti che , per avere acceso, per esempio, in scrittura si di un determinato Files, da parte del Server WEB, anche se è PHP a richiederlo , occorre che la cartella si aaccedibile nella permission voluta dall' utente speciale IUSR_<nomemacchina> .. il quale , impersonifica un'altro utente ancora....indovinate quale.... e mi riferisco al discorso un cui te affermi che ogni applicazione, interrogando semplicemente il S.O. , può sapere i suoi dati di sessione....
    Ebbene, una mia applicazione, che ho realizzato e che conosco proprio bene, essendo il TqM2, è proprio una dimostrazione lampante del fatto che un'applicazione , se non si appoggia ad un sottosistema, non sa proprio un ciufolo...proprio perchè al S.O. si DEVE presentare come "qualcuno" che ha l'accesso a tali informazioni, altrimenti il S.O. ti risponde picche..TqM2, utilizza proprio il meccanismo di Impersonate per esempio, per ottenere privilegi che altrimenti non avrebbe...e non lo chiede al S.O. ... il S.O. esegue quello che gli è stato detto da un'altro "attore"...
    Un'altra cosa soltanto..togli la Dll PHP.dll dall'elenco delle Dll "puntate" da IIS6...e vedi se ti funziona l' interprete....
    Quello che voglio farti capire io è che NON ti devi fermare a ciò che vedi "in superficie"...scendi in profondità...e vedrai tante belle cosettine interessanti...
    Per esempio...il fatto che Microsoft è in difficoltà a "togliere" dal Suo S.O. alcune componenti integrate...è dettato da una parte da considerazioni commerciali, dall'altro, però, da oggettive difficoltà tecniche... e te lo dice uno che Windows... in alcune componenti, per motivi lavorativi, lo ha modificato....nella parte di autorizzazione (Gina) e nella parte di gestione transazioni (DTC)

    Ciao !!

  4. #4
    Webhosting Guru L'avatar di daniele_dll
    Data Registrazione
    Feb 2006
    Località
    Qualcuno dice Sicilia, qualche altro Nord Africa
    Messaggi
    1,535

    Re: Linguaggi di scripting e Webserver: come lavorano?

    Citazione Originariamente Scritto da ceccus
    Salve,
    Non si tratta di scannamento...se viene preso come tale...beh...chiaramente..non posto più...
    era (l'andato a male) tentativo di fare una battuta

    Poi, esiste un'altro concetto da tirare in ballo....ed è l' impersonate ...
    Se fosse come dici te...quando accedi ad una cartella , dovresti dare l'accesso direttamente al processo che lo fa ... o all'utente che lo rappresenta... Ma non è così... sappiamo tutti che , per avere acceso, per esempio, in scrittura si di un determinato Files, da parte del Server WEB, anche se è PHP a richiederlo , occorre che la cartella si aaccedibile nella permission voluta dall' utente speciale IUSR_<nomemacchina> .. il quale , impersonifica un'altro utente ancora....indovinate quale.... e mi riferisco al discorso un cui te affermi che ogni applicazione, interrogando semplicemente il S.O. , può sapere i suoi dati di sessione....
    ma infatti (non ricordo se in questo o nell'altro) ho scritto proprio che è per l'appunto php che gira con in un contesto specifico con dei privilegi specifici perché per l'appunto quando viene eseguita una richiesta, IIS, legge l'utente legato al vhosts e genera un nuovo thread per gestire la richiesta. Il nuovo thread switcha di utente (passando all'utente indicato nella configurazione, tramite l'impersonate per l'appunto ... quante testate ho tirato col .net sull'argomento ... su linux è più semplice )

    e quindi se può accedere o meno al file è il sistema operativo a deciderlo

    Un'altra cosa soltanto..togli la Dll PHP.dll dall'elenco delle Dll "puntate" da IIS6...e vedi se ti funziona l' interprete....
    è ovvio che se a IIS6 dico di non usare più php tramite ISAPI i file php non verranno parsati (tranne se specifico di usare CGI o FastCGI, ma questo è un'altro discorso)

    Per esempio...il fatto che Microsoft è in difficoltà a "togliere" dal Suo S.O. alcune componenti integrate...è dettato da una parte da considerazioni commerciali, dall'altro, però, da oggettive difficoltà tecniche... e te lo dice uno che Windows... in alcune componenti, per motivi lavorativi, lo ha modificato....nella parte di autorizzazione (Gina) e nella parte di gestione transazioni (DTC)
    non metto in dubbio le tue competenze, che sicuramente sono superiori alle mie, bensi mi sono limitato a dire che le operazioni svolte dal linguaggio di scripting, si parlava di php ma in generale la cosa è +/- la stessa per tutti, tranne dove implementato in modo diverso, vengono eseguite dal so ... il webserver ha un ruolo marginale nella diretta esecuzione dello script ... e che quindi i tempi di esecuzione dello script calcolati direttamente all'interno dello script non subiscono l'influenza della performance di uno o di un'altro webserver

    sempre questo ho detto e sempre questo ho ripetuto

    se avessi eseguito le statistiche calcolando il tempo di risposta eseguendo una richiesta web (ovvero un programma che si conentte al webserver, fauna richiesta http 1.1 e cronometra i tempi di attesa della risposta) allora si, sicuramente IIS sarebbe stata una scelta ben più azzeccata rispetto ad apache su windows ... ma non ho fatto questo

    so bene che è il webserver a fare tutto il resto (ne ho scritto uno per sperimentare svariati anni a dietro addietro e andava solo con le cgi [che fu già tanto in quel periodo per via delle mie ridottissime competenze in ambito software di rete])

  5. #5
    Windows Evangelist
    Data Registrazione
    Sep 2006
    Località
    Siena
    Messaggi
    1,592

    Re: Linguaggi di scripting e Webserver: come lavorano?

    Salve,
    Mi sarebbe dispisaciuto non poco se avessi pensato ad uno "scannamento" ... ...ma vedo che non è così e ne sono contento
    E' uno scambio di opinioni su di un "mondo complesso"...e , a volte, per cercare di renderlo meno complesso di quello che è in realtà, si incorre in incomprensioni.

    Ciao !!

  6. #6
    Webhosting Guru L'avatar di daniele_dll
    Data Registrazione
    Feb 2006
    Località
    Qualcuno dice Sicilia, qualche altro Nord Africa
    Messaggi
    1,535

    Re: Linguaggi di scripting e Webserver: come lavorano?


  7. #7
    Webhosting Guru
    Data Registrazione
    Apr 2006
    Messaggi
    1,383

    Re: Linguaggi di scripting e Webserver: come lavorano?

    ma perchè non usate MacOS e la piantate ???
    -

  8. #8
    Webhosting Guru L'avatar di daniele_dll
    Data Registrazione
    Feb 2006
    Località
    Qualcuno dice Sicilia, qualche altro Nord Africa
    Messaggi
    1,535

    Re: Linguaggi di scripting e Webserver: come lavorano?

    vuoi una risposta seria?

    mac os x ha SERISSIMI problemi per quanto riguarda i thread e l'accesso alle risorse della macchina (ad esempio rete, dischi, audio, video e cosi via) che rallenta tutto quando si usano + thread

  9. #9
    Windows Evangelist
    Data Registrazione
    Sep 2006
    Località
    Siena
    Messaggi
    1,592

    Re: Linguaggi di scripting e Webserver: come lavorano?

    Salve,
    Beh....se il tuo "contributo" ad una discussione seria...deve essere questo...hai perso un'occasione per stare zitto

    Ciao !!

  10. #10
    Webhosting Guru L'avatar di daniele_dll
    Data Registrazione
    Feb 2006
    Località
    Qualcuno dice Sicilia, qualche altro Nord Africa
    Messaggi
    1,535

    Re: Linguaggi di scripting e Webserver: come lavorano?

    io adoro perdere le occasioni

  11. #11
    Webhosting Guru
    Data Registrazione
    Apr 2006
    Messaggi
    1,383

    Re: Linguaggi di scripting e Webserver: come lavorano?

    ma l' OS/2 si puo' usare come webserver ?
    edit : guardate la mia firma
    -

  12. #12
    Webhosting Guru L'avatar di daniele_dll
    Data Registrazione
    Feb 2006
    Località
    Qualcuno dice Sicilia, qualche altro Nord Africa
    Messaggi
    1,535

    Re: Linguaggi di scripting e Webserver: come lavorano?

    beh si ... ma è leggemente retrò

  13. #13
    Webhosting Guru
    Data Registrazione
    Apr 2006
    Messaggi
    1,383

    Re: Linguaggi di scripting e Webserver: come lavorano?

    uhh....interessante. E l' Amiga ?
    a parte gli scherzi secondo me è una bella lotta tra asp e php
    -

  14. #14
    Windows Evangelist
    Data Registrazione
    Sep 2006
    Località
    Siena
    Messaggi
    1,592

    Re: Linguaggi di scripting e Webserver: come lavorano?

    Salve,
    Mah...si stava parlando di altro... comunque, a mio avviso, PHP è superiore ad ASP

    Ciao !!

  15. #15
    Webhosting Guru L'avatar di daniele_dll
    Data Registrazione
    Feb 2006
    Località
    Qualcuno dice Sicilia, qualche altro Nord Africa
    Messaggi
    1,535

    Re: Linguaggi di scripting e Webserver: come lavorano?

    l'amiga credo pure

    ------

    nn c'è lotta tra asp o php ... tra windows o linux ... tra ntfs o fat32 o ext3 o reiserfs o xfs o jfs o zfs e tutto il resto della compagnia bella

    va scelto lo strumento adatto per il lavoro in base alle proprie conoscenze

    ovviamente, se uno ha possibilità di scelta, la cosa cambia perché vanno valutati i pregi e i difetti degli strumenti ... asp è lento e da poca flessibilità rispetto a asp.net e php ... php e asp.net si superano a vicenda per via di funzionalità meglio implementate nell'uno o nell'altro ... perl ... python ... ruby e company possono girare pure, ma chi da hosting python o ruby ad esempio? pochissimi

    va scelto lo strumento più adatto in base alle proprie esperienze e conoscenze

    ------

    cmq si ... si stava decisamente parlando d'altro
    Ultima modifica di daniele_dll; 17-05-2006 alle 20:39

Pagina 1 di 3 123 UltimaUltima

Discussioni Simili

  1. Programmazione - Quali linguaggi?
    Di GrG nel forum Io Programmo
    Risposte: 56
    Ultimo Messaggio: 25-02-2010, 13:02
  2. [BASH] Guida allo shell scripting
    Di cxcs nel forum Gestione Server Windows e Server Linux
    Risposte: 0
    Ultimo Messaggio: 02-01-2010, 19:06
  3. Windows Azure, la cloud di Microsoft è realtà. Non solo software e linguaggi MS
    Di Redazione HostingTalk nel forum Articoli e news su Webhosting e Servizi Internet
    Risposte: 0
    Ultimo Messaggio: 18-11-2009, 12:30
  4. Ma come lavorano alla DELL?
    Di simons nel forum L'OTInformatico
    Risposte: 14
    Ultimo Messaggio: 08-06-2007, 17:39

Informazioni Discussione

Utenti che Stanno Visualizzando Questa Discussione

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Tag per Questa Discussione

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •