Qual è il ruolo della cartella pubblica nelle applicazioni Web MVC? [chiuso]

3

Tutti i controller, i modelli e le viste devono essere posizionati nelle cartelle private? Se sì, quali sono i ruoli della cartella pubblica? Quali sono le terminologie corrette per tali ruoli nell'informatica? In che modo la GUI si relaziona con questi concetti?

Altrimenti, i controller e / o le viste devono essere distribuiti tra le cartelle private e pubbliche? In tal caso, gli script direttamente richiamati tramite POST sono solo interfacce, interfacce controller o interfacce di visualizzazione?

    
posta mikl 23.10.2015 - 18:19
fonte

2 risposte

2

In molti framework MVC (ad esempio Rails), la cartella pubblica viene utilizzata per servire file statici. Così, ad esempio, spesso si vedono file 404.html, 500.html e favicon.ico quando si crea il progetto attraverso i "soliti" mezzi forniti da tali framework. Questi sono file "stupidi" che non interagiscono con il backend. L'assunto è che questi non richiedono un contesto generato dai controller per renderli; ad esempio il 404.html potrebbe semplicemente esprimere che nulla esiste in questo URL, dove l'URL è qualcosa che non è compatibile con il sistema di routing del framework.

Potresti anche vedere le risorse compilate collocate lì (ad esempio la pipeline di asset di un framework che combina più file CSS in uno per ridurre il numero di connessioni richieste per il rendering di una pagina).

Inoltre, quando distribuito su un server web non di sviluppo, il webroot viene spesso impostato sulla directory pubblica.

Re: in che modo una GUI si riferisce a questo concetto ... beh, è un modo per associare queste cose, ma supponendo che si stia utilizzando un IDE con funzionalità di controllo del codice sorgente (ad es. integrazione git) potrebbe essere automaticamente rilevato come contenente directory per escludere dal controllo di versione. Ad esempio, probabilmente non vuoi che le risorse compilate vengano mostrate nel tuo repository poiché possono essere generate dalla config a pipeline messa insieme con i file dev.

    
risposta data 23.10.2015 - 23:06
fonte
1

Il ruolo della cartella pubblica è avere quelle viste che sarebbero accessibili pubblicamente nell'applicazione. Ad esempio, una pagina di accesso sarebbe generalmente una pagina a cui gli utenti anonimi potevano accedere per accedere al sito.

Alcune applicazioni Web MVC potrebbero non disporre di pagine pubbliche in quanto potrebbero utilizzare un sistema di sicurezza interno che controlla prima di accedere a qualsiasi pagina come un sito di SharePoint che potrebbe utilizzare le credenziali di Windows per identificare gli utenti come esempio in modo che possa esistere ma non esiste Devo esistere.

All'interno dell'informatica ciò rientra nell'ambito della sicurezza delle informazioni e nell'analisi delle politiche di autorizzazione. Ogni applicazione può utilizzare diversi metodi per rafforzare la sicurezza, in modo che questo possa andare in una serie di direzioni diverse potenzialmente.

La GUI come interfaccia utente grafica si inserisce come parte dell'architettura qui. Ogni vista è un'interfaccia utente e quindi una GUI può ben interagire con la porzione View in cui il concetto di cartella pubblica e privata si applicherebbe all'interno della sicurezza dietro le quinte sebbene alcuni siti possano usare lucchetti e altri simboli per indicare quali pagine richiedono l'autenticazione e l'autorizzazione per visitare .

I controllori possono essere raggruppati in una cartella, anche se alcuni potrebbero volere che si diffondano e, a seconda delle tecnologie utilizzate, potrebbero esserci diversi modi per implementarlo. Le visualizzazioni sarebbero probabilmente in cartelle che, a seconda delle tecnologie, potrebbero avere la sicurezza gestita in vari modi.

Le richieste POST al server passerebbero probabilmente attraverso un controller a una vista nell'architettura MVC poiché potrebbero esserci dati da elaborare che sono il ruolo del controller. La visualizzazione è responsabile del ritorno all'utente dei dati della pagina richiesta.

In risposta al commento:

La sicurezza del controllore può essere eseguita a livello di file o su un livello di funzione in cui quest'ultimo può avere più senso in alcuni casi poiché lo stesso controller potrebbe avere funzioni diverse. Ad esempio, considera Yahoo! home page in cui, se non si è effettuato l'accesso, è possibile che vengano visualizzati i file più popolari mentre, se si è effettuato l'accesso, verrà visualizzata la pagina personalizzata che potrebbe passare potenzialmente attraverso lo stesso controller di base. Pertanto, le autorizzazioni a livello di file sarebbero inutili in quanto tutto il codice del controller verrebbe probabilmente eseguito con lo stesso account server.

Sebbene possano esistere alcune applicazioni web che non hanno opinioni pubbliche, ciò dipende molto da come si vuole implementare la sicurezza che può essere fatta in vari modi usando varie tecnologie, non diversamente da come due persone possono comunicare in vari modi formati, lingue e grammatica. Tieni presente che, mantenendo questo aspetto così generico, esistono probabilmente dozzine di risposte diverse a seconda dell'implementazione che si sceglie di utilizzare, ad es. potresti prendere ASP.Net Webforms e implementare il tuo MVC o potresti utilizzare ASP.Net MVC o potresti cercare in PHP basi di codice open source che potrebbero implementare il pattern, ecc.

    
risposta data 23.10.2015 - 21:04
fonte