среда, 1 августа 2012 г.

module: http


    HTTP
    С точки зрения модели OSI находится на Application level. 
    HTTP - это request/response или request/reply протокол (в противовес другим messaging patterns, главные альтернативы - one-way pattern (UDP, for example) и publish/subscribe). Есть более развитые системы шаблонов (SOAP: In-Only, Robust In-Only, In-Out, In Optional-Out, Out-Only, Robust Out-Only, Out-In, Out-Optional-In или ØMQ: Request-reply, Publish-subscribe, Push-pull, Exclusive pair).
    В чистом виде HTTP - это синхронный запрос/ответ без сессии, но есть 2 оптимизации: persistent connection + http pipelining которые "ослабляют" эти свойства.

*) HTTP versions: 0.9, 1.0 (RFC 1945), 1.1 (RFC 2068 + RFC 2616)

*) URI vs URL vs URN (more: RDF + ?современная семантика в HTML?)

*) HTTP-request/HTTP-response asymmetry

*) HTTP-request methods (GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT)GET vs POST


*) HTTP response status line ("HTTP/1.1 200 OK", "???", ...)


*) HTTP status codes, five classes of response (1xx Informational, 2xx Success, 3xx Redirection, 4xx Client Error, 5xx Server Error).

*) MIME type, most used (txt/?, ???)

*) HTTPS

*)  Safe methods (HEAD, GET, OPTIONS, TRACEshould not change the state of the server, idempotent methods (PUT, DELETE) meaning that multiple identical requests should have the same effect as a single request, the POST method is not necessarily idempotent, and therefore sending an identical POST request multiple times may further affect state or cause further side effects (such as financial transactions).

1) auth
2) cookie
*) HTML form
3) file upload
4) POST
5) persistent connection
*) http pipelining
6) partial GET
7) cache control: ETag, modified-since, cache-control, Cache-Control: max-age=0, Cache-Control: no-store, Cache-Control: no-cache
8) comress: deflate, ?, ?

chunked transfer encoding

*) video traffic
*) HTTP proxy, HTTP cache
*) исследовать SPDY
*) исследовать WebSockets
*) исследовать REST
*) исследовать WebDAV, SOAP, ???