La mancanza di stati su HTTP rende il protocollo inadatto per le applicazioni moderne? [chiuso]

8

Sono passato da PHP a ASP.NET, ora sto lavorando con webform in una società piuttosto grande. Ho dato un po 'di informazioni e di ricerca per sostenere le mie impressioni su webforms ASP.NET e sono giunto alla conclusione che Webforms è un tentativo di rendere le applicazioni web più facili da scrivere per coloro che provengono dal mondo della "programmazione desktop".

Ma prima di eliminare WebForms ho deciso di analizzare le esigenze del software che scriviamo e abbiamo riscontrato sulla questione del mantenimento degli stati delle applicazioni sul Web.

Comprendo che HTTP è un protocollo stateless e ASP.NET tenta di simulare stati con variabili di sessione, campi nascosti e viewstate, è a mia conoscenza anche che tutti i punti sopra citati hanno difetti e non sono modi perfetti per mantenere stato nella mia applicazione, ma capisco anche la necessità di mantenere uno stato sulla mia app.

Che solleva le domande, l'HTTP è davvero adatto per questo tipo di lavoro (rendendo le applicazioni che richiedono lo stato)? Gli strumenti attualmente disponibili per gli sviluppatori Web sono sufficienti? I nuovi strumenti sono disponibili con HTML5 efficace nel lavoro o sono solo soluzioni alternative per le limitazioni a HTTP.

Adoro lo sviluppo per il web, e ho molta più familiarità con il web che con il desktop, mi sono solo chiesto qualcosa di questo stato dell'apolidia HTTP per qualche tempo e voglio capire se mi manca qualche punto o se ho ragione sulle mie idee.

    
posta jonathan 15.02.2013 - 21:30
fonte

3 risposte

10

Il protocollo potrebbe essere stateless, ma l'app che scrivi potrebbe mantenere qualsiasi stato:)

    
risposta data 15.02.2013 - 21:38
fonte
7

HTTP è certamente una tecnologia obsoleta che è diventata abbastanza onnipresente come il web è diventato così. Di conseguenza, le persone stanno estendendo questa tecnologia per fare molte cose ora con le moderne app web, se potesse sembrare che l'apolidia di HTTP sia un problema. Quindi vedi molte comodità come i viewstate.

Tuttavia è anche possibile codificare le moderne app Web in modo stateless e questo è spesso preferito, lo sviluppo web RESTful si basa su questa idea. Molte API Web che costituiscono la base per le moderne app Web sono veramente senza stato e dovrebbero esserlo. È un modo diverso di pensare e architetto. Le tue esigenze possono variare a seconda di ciò che stai facendo.

    
risposta data 15.02.2013 - 21:38
fonte
5

Molti protocolli sono privi di stato quando si scende al livello di protocollo non elaborato. Statefulness non è l'ostacolo principale allo sviluppo Web. L'ostacolo principale è che HTTP per impostazione predefinita è Sessionless. Ovvero, per impostazione predefinita una serie di richieste da un browser a un server non sono correlate tra loro.

Ci aggiriamo utilizzando i cookie per indicare una sessione. Il server ASP.NET assegna un cookie al browser, che lo restituisce successivamente alla richiesta successiva. Dietro le quinte ASP.NET cerca quel cookie e lo collega alla Sessione che ha memorizzato nella cache (supponendo che la sessione non sia scaduta).

Da lì, altri dati possono essere associati alla sessione e utilizzati per creare un'esperienza personalizzata per ciascun utente. Web Server e framework sono diventati così bravi in questo modo che i rich client possono essere costruiti sulla base del protocollo HTTP. Caso in questione, i client Twitter utilizzano http per tutto, dal recupero di un elenco di amici e tweet, all'invio di messaggi diretti ad altri utenti. (Sto semplificando un po ', c'è un protocollo di streaming TCP completamente connesso disponibile tramite twitter, ma per la maggior parte, l'HTTP è al centro di tutto.

L'HTML ha raggiunto i suoi limiti come tecnologia di visualizzazione adeguata, ma lo standard HTML 5 insieme a JavaScript e CSS 3 hanno reso possibile creare interfacce utente ricche che rivaleggiano con i client nativi. In effetti, HTML 5 è arrivato finora, è supportato come tecnologia nativa per le app di Windows 8. Con librerie come JQuery per il client e NodeJS per il server, è possibile creare un'applicazione che utilizza JavaScript per la sua logica sul client e server e HTML per la visualizzazione e HTTP puro per le comunicazioni.

Quindi, mentre l'argomento passato che HTML / HTTP ha raggiunto il limite potrebbe aver avuto qualche merito, non è più il caso.

    
risposta data 15.02.2013 - 22:28
fonte

Leggi altre domande sui tag