background preloader

Le protocole HTTP

Le protocole HTTP
Septembre 2017 Introduction au protocole HTTP Le protocole HTTP (HyperText Transfer Protocol) est le protocole le plus utilisé sur Internet depuis 1990. La version 0.9 était uniquement destinée à transférer des données sur Internet (en particulier des pages Web écrites en HTML] La version 1.0 du protocole (la plus utilisée) permet désormais de transférer des messages avec des en-têtes décrivant le contenu du message en utilisant un codage de type MIME. Communication entre navigateur et serveur La communication entre le navigateur et le serveur se fait en deux temps : Le navigateur effectue une requête HTTP Le serveur traite la requête puis envoie une réponse HTTP En réalité la communication s'effectue en plus de temps si on considère le traitement de la requête par le serveur. Requête HTTP Une requête HTTP est un ensemble de lignes envoyé au serveur par le navigateur. Une requête HTTP a donc la syntaxe suivante (<crlf> signifie retour chariot ou saut de ligne) : Commandes En-têtes Réponse HTTP

Detect end of HTTP request body Sérialisation Un article de Wikipédia, l'encyclopédie libre. Le terme marshalling (mobilisation, canalisation, organisation) est souvent employé de façon synonyme, de même que le terme linéarisation. Les termes marshalling et unmarshalling s'emploient le plus souvent dans le contexte d'échanges entre programmes informatiques, alors que les termes sérialisation et désérialisation sont plus généraux[1]. Contexte[modifier | modifier le code] Comme pour beaucoup de choix algorithmiques, plus le mécanisme de sérialisation est spécialisé pour un type de données spécifique, plus il sera performant. Plus globalement, il est nécessaire de faire un a priori sur les ressources disponibles au moment de la désérialisation pour déterminer les informations que l'on pourra reconstruire à l'aide d'une simple référence et celles qu'il est nécessaire d'encoder. Encodage[modifier | modifier le code] Le choix de base est entre format binaire et format texte : Codages binaires[modifier | modifier le code]

Web Server Gateway Interface WSGI was originally specified as PEP-333 in 2003.[2] PEP-3333, published in 2010, updates the specification for Python 3. Background[edit] In 2003, Python web frameworks were typically written against only CGI, FastCGI, mod_python, or some other custom API of a specific web server.[3] To quote PEP 333: Python currently boasts a wide variety of web application frameworks, such as Zope, Quixote, Webware, SkunkWeb, PSO, and Twisted Web -- to name just a few. By contrast, although Java has just as many web application frameworks available, Java's "servlet" API makes it possible for applications written with any Java web application framework to run in any web server that supports the servlet API. Specification overview[edit] The WSGI has two sides: Between the server and the application, there may be one or more WSGI middleware components, which implement both sides of the API, typically in Python code. WSGI Middleware[edit] A middleware component can perform such functions as:[4] Examples[edit]

Runtime system Overview[edit] Every programming language specifies an execution model, and many implement at least part of that model in a runtime system. One, debatable, way to define a runtime system is that any behavior that is not directly the work of a program is runtime system behavior. This definition includes as part of the runtime system things such as putting parameters onto the stack before a function call, the behavior of disk I/O, and parallel execution related behaviors. By this definition, essentially every language has a runtime system, including compiled languages, interpreted languages, and embedded domain-specific languages. Many examples of discussions of runtime systems exist. [1][2][3] Examples[edit] Another example, which illuminates the nature of a runtime system, is the case of using an application programming interface (API) to interact with a runtime system. Advanced features[edit] History[edit] See also[edit] References[edit]

Execution model An execution model specifies how work takes place. Every programming language has an execution model, which is specified as part of the language specification, and is implemented as part of the language implementation. Execution models can also exist independently from programming languages, an example of which would be the POSIX Threads library. The details in the specification of an execution model cover things such as what is an indivisible unit of work and what are the constraints on the order in which those units of work take place. An implementation of an execution model controls the order in which work takes place during execution. The static choices are most often implemented inside a compiler, in which case the order of work is represented by the order in which instructions are placed into the executable binary. However, an interpreter may also be constructed for any language, in which case all decisions on order of execution are dynamic. Overview[edit] See also[edit]

Related: