background preloader

The absolute fundamentals

Facebook Twitter

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. For example, the addition operation is an indivisible unit of work in many languages, and in sequential languages such units of work are constrained to take place one after the other. An implementation of an execution model controls the order in which work takes place during execution. This order may be chosen ahead of time, in some situations, or it can be dynamically determined as the execution proceeds.

Overview[edit] See also[edit] References[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] Static typing - What is the difference between statically typed and dynamically typed languages? 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.

This wide variety of choices can be a problem for new Python users, because generally speaking, their choice of web framework will limit their choice of usable web servers, and vice versa. 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: WSGI Middleware[edit] Examples[edit] Example application[edit] How the Internet Works in 5 Minutes. 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. Par exemple, si on ne veut transmettre que dix nombres dont les valeurs sont comprises entre 0 et 255, il suffira de 1 octet par nombre. Si par contre on ne sait pas à l'avance la quantité d'objets à transmettre on devra prévoir un ou plusieurs octets supplémentaires pour transmettre cette quantité. Encodage[modifier | modifier le code] Le choix de base est entre format binaire et format texte : Detect end of HTTP request body. 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.

Le but du protocole HTTP est de permettre un transfert de fichiers (essentiellement au format HTML) localisés grâce à une chaîne de caractères appelée URL entre un navigateur (le client) et un serveur Web (appelé d'ailleurs httpd sur les machines UNIX). Communication entre navigateur et serveur La communication entre le navigateur et le serveur se fait en deux temps : Requête HTTP Une requête HTTP est un ensemble de lignes envoyé au serveur par le navigateur. METHODE URL VERSION<crlf> EN-TETE : Valeur<crlf> . . . Commandes En-têtes Réponse HTTP.