Web fundamentals, Part 2: HTTP Basics
As defined in the “HTTP RFC“, HTTP (Hypertext Transfer Protocol) is “an application-level protocol for distributed, collaborative, hypermedia information systems. It is a generic, stateless, object-oriented protocol which can be used for any tasks, such as name servers and distributed object management systems, through extension of its request methods. A feature of HTTP is the typing and negotiation of data representation, allowing systems to be built independently of the data being transferred.” That’s the long official definition, while the practical most important aspect is that it is a stateless protocol. What this means is that each request/response is totally independent from any other request. Basically we always have a server, a client and the HTTP protocol that transmit the data between them. Since the protocol is stateless if we want to store state we need to pass it with each request/response. In order to understand how this can be done we need to look in more details of how the HTTP protocol works, but to give you an idea, we have three options:
- Use cookies - That’s how the magic of “session” works in some platforms.
- Use URL parameters (GET request) - An alternative way to support “session”.
- Use form hidden fields - That’s how the ASP.NET web forms and ViewState concept work.
Each HTTP request/response is compromised of two parts: the header and the body. While the header is required, the body is optional.They are separated by an empty line.
Now let’s have a more closer look on how a HTTP request/response looks like.
HTTP Request
One of the best ways to understand the HTTP protocol is to use a tool that captures HTTP request/response headers. If you’re using Firefox, there’s an add-on called Live HTTP Headers that does a nice job. A request for this blog results in the following HTTP request header:
GET / HTTP/1.1Host: blog.tollkuci.comUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729)Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-us,sq;q=0.7,en;q=0.3Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-aliveCookie: __utma=192489849.890738818.1223636002.1223636002.1223636002.1; __utmb=192489849;X-lori-time-1: 1223637168885If-Modified-Since: Fri, 10 Oct 2008 11:09:44 GMT
As you can see a HTTP request header is just a list of name/value pairs separated but new line. While the HTTP header has a big list of possible fields, a typical request such as the one above contains the most useful ones and a good understanding of these fields it’s more that enough for most practical reasons. Now let’s analyze each field of the above request in detail:
- The first line of the HTTP header indicates the type of the request (in this case GET), the path of the request (in this case /, meaning the default page) and the version of the protocol to be used (in this case HTTP 1.1).
- The Host field indicates the server when the request should be made.
- User-Agent: Informative fields with details about the user agent (that is the browser) that is making the request. In this case it includes details about browser (Firefox), Windows and .NET. The server receiving the request may make decisions based on this field, for example render different versions for different browsers.
- Accept: Specify the media type that the response should have. In this case it is specified that text/html and application/xhtml+xml are the preferred response types. However if that’s not possible application/xml can be used and if that’s not possible any media type can be returned. The order above is specified by the quality parameter (q). Since text/html and application/xhtml+xml do not have a quality parameter it default to 1.
- Accept-Encoding: Similar to Accept, but it restricts the encoding of the response. In this case it means that the browser can accept gzip and deflate encodings. If the server also supports gzip or deflate encodings it can compress the response before sending it to the browser, thus saving bandwidth.
- Accept-Charset: Again, similar to Accept, but it defines the characters sets that are allowed for the response. In this case “ISO-8859-1″ is the preferred character set, then UTF-8 and then any other character set.
- Keep-Alive and Connection specify underlying TCP connection details which are mostly irrelevant. Basically they are used to specify if the underlying connection should be closed for each request/response or should be alive for a specified interval.
- Cookie: This is one of the most important fields. It include the list of valid cookies that the user agent (browser) has for this domain. Cookies are at the heart of higher-level concepts such as “Session”. The basic idea is that the browser keeps track of valid cookies for a domain and send them with each request. I’ll talk with much more details for cookies in a future article.
- X-lori-time-1: This is a custom header sent by one of the add-ons I use in Firefox. I included it here to show that it is possible to include customer headers in a HTTP request.
- If-Modified-Since: It is used for caching purposes and tells the server to not send the data, but to send a special response (304, Not Modified) if the resource is not modified since the specified date. In this case the user agent (browser) will use the cached copy of the resource.
If the above case, since the request is a GET request there’s no message body. In a POST request, the request body will include the name and values of the fields in the form.
HTTP Response
HTTP response also includes a header and a body. The response header for the above request is as below:
HTTP/1.x 200 OKCache-Control: no-cache, must-revalidate, max-age=0Connection: closeDate: Fri, 10 Oct 2008 11:12:50 GMTPragma: no-cacheContent-Type: text/html; charset=UTF-8Content-Encoding: gzipExpires: Wed, 11 Jan 1984 05:00:00 GMTLast-Modified: Fri, 10 Oct 2008 11:12:49 GMTVary: Accept-EncodingServer: WWW Server/1.1X-Powered-By: ASP.NET, PHP/5.2.0X-Pingback: http://blog.tollkuci.com/xmlrpc.phpStatus: 200 OK
Let’s examine each field in detail:
- The first line include details of the protocol used and the status of the response (200 OK means that the request is fulfilled successfully).
- Cache-Control: Used to define the behavior of caching for the returned resource. In this case, no-cache means that the resource should not be cached anywhere, that the client must re-validate the request and that max-age of caching is 0. End result of all this is that the page should not be cached. There are several other options that can be used to fine tune caching. We’ll have the chance to talk more of caching in a future article.
- Connection: As explained for the Request header specify details for the underlying TCP connection.
- Date: Date and time when the request was processed.
- Pragma: Generic field that can be used for specific implementations. In this case it specifies that the page should not be cached.
- Content-Type: Specified the media type of the response body.
- Content-Encoding: Encoding of the response body. Since the browser supported gzip encoding and the server can generate gzip response it has compressed the response using gzip.
- Expires: Date and time when the resource should expire from the cache. In this case a past date is used to indicate that the page should not be cached.
- Last-Modified: Date and time when the request was last modified.
- Vary: Specify the mechanism that was used to generate the response. In this case it means that Accept-Encoding was used to generate the response as gzip.
- Server: Details about the server that is sending the response.
- X-Powered-By: Customer header used the return details about the server that is sending the response.
- X-Pingback: Again customer header used to specify the pingback url.
- Status: Must important field that includes the response status code and name. 200 OK means that the request was fulfilled successfully. Other common response statuses are:
- 301 Moved Permanently - indicates that the resource was moved permanently to a new URL.
- 302 Moved Temporarily - indicates that the resources was moved temporarily to a new URL.
- 401 Unauthorized - indicates that the request requires user authentication.
- 403 Forbidden - indicates that the credentials specified with the request are not valid and the request is forbidden.
- 404 Not Found - the most well know status. Indicates that the specified resource cannot be found.
- 500 Internal Server Error - the server is unable to fulfill the request.
For a list of all header fields and response codes, you can always refer to the HTTP RFC.
Conclusions
This was just an overview of the basics of the HTTP protocol. There are lots of resource on the web that go down on details for each of the above mentioned topics, by my idea was to give you only the most important concepts. The most important thing to remember from this article is the stateless nature of HTTP and that each request/response is independent from any other. Since in most application it is necessary to store the state somehow, mechanism like url parameters, cookies or hidden form fields are used to maintain this state. We’ll look at them in more details in this series. As a final note, use a tool (such as the Live HTTP Headers add-on) to experiment with HTTP headers. Also don’t be afraid to “play” with the HTTP protocol by just using telnet to connect with any host (telnet tollkuci.com 80) and to start typing the request header manually.
http://www.vassilena.com/?p=9-4736 wCir smmRotheuPennne
http://www.vassilena.com/?p=9-13699 tarmol adbTeT
http://www.vassilena.com/?p=9-4861 Ia Taa sdtWhnmo
http://www.vassilena.com/?p=9-3991 r
http://www.vassilena.com/?p=9-6187 ath hcuei lt uAt snioieePPreorB igLey
http://www.vassilena.com/?p=9-4540 luO yihnnetBPm
http://www.vassilena.com/?p=9-49 eadlo yxTatm
http://www.vassilena.com/?p=9-11049 pdneaOramrAi sPoe dd tiroftToic
http://www.vassilena.com/?p=9-10550 HeIdnrnctromsio anrcuatnr sn lmtPiIlt Utoma
http://www.vassilena.com/?p=9-4856 peS Pen hNrehmn
http://www.vassilena.com/?p=9-10226 1 nieiaPrOnsp0elhten hm rCepnS
http://www.vassilena.com/?p=9-1276 PcPrnemrsiti
http://www.vassilena.com/?p=9-3014 n0 .h5MeoPi. eeg$3 F
http://www.vassilena.com/?p=9-6779 raAh n deonmtp
http://www.vassilena.com/?p=9-4892 omeeNsiiocre rP
http://www.vassilena.com/?p=9-10777 0oSplTiimer 5F aa
http://www.vassilena.com/?p=9-8976 a
http://www.vassilena.com/?p=9-10089 vFanoo
http://www.vassilena.com/?p=9-3330 Pinhir
http://www.vassilena.com/?p=9-13365 Brenigy sa tAPireMagersutinUm eh
http://www.vassilena.com/?p=9-2013 ihhniPedppoO hTtren iem
http://www.vassilena.com/?p=9-12142 rieoren nOcePehOeid errg nNnhPiivtsrrpmo
http://www.vassilena.com/?p=9-7984 hretmthnPnrneenP
http://www.vassilena.com/?p=9-7324 dEfe eriacTmtdfao S
http://www.vassilena.com/?p=9-12611 ornasli
http://www.vassilena.com/?p=9-13819 Ir
http://www.vassilena.com/?p=9-12647 niaaomerTn Ccda
http://www.vassilena.com/?p=9-4309 P heioAutoPiite
http://www.vassilena.com/?p=9-10211 Oplnraeneed er ii enPPAmOhntCth
http://www.vassilena.com/?p=9-8892 Ien rPheyenCm evhniPBa
http://www.vassilena.com/?p=9-1314 mlraTNe c nSotiasoiairaeihOrspdcmlPn
http://www.vassilena.com/?p=9-3458 8n
http://www.vassilena.com/?p=9-9568 meoa cf tEdrgODase
http://www.vassilena.com/?p=9-1912 BCpnhnOaeyneu Pi
http://www.vassilena.com/?p=9-3464 dginnm h
http://www.vassilena.com/?p=9-11352 c Pr ecPniiehOnndgtes eOesLtniev
http://www.vassilena.com/?p=9-13725 rt eTdstoMir aPri
http://www.vassilena.com/?p=9-325 i
http://www.vassilena.com/?p=9-11204 e esocaimiTFsvaaPtdrlPl
http://www.vassilena.com/?p=9-599 en nsheei mlrnaSrgevtOPeih
http://www.vassilena.com/?p=9-1733 srethpit niomN
http://www.vassilena.com/?p=9-2589 dm laEoFdrxCeo aT
http://www.vassilena.com/?p=9-1955 o Omrdr
http://www.vassilena.com/?p=9-9743 ets
http://www.vassilena.com/?p=9-3676 rTryw ad
http://www.vassilena.com/?p=9-7500 nCndaeih hPeaLpeeroTSime tph
http://www.vassilena.com/?p=9-13564 ForoaT gm
http://www.vassilena.com/?p=9-5040 Gie tpit maBdeVnniathcei n
http://www.vassilena.com/?p=9-4731 iu.tEe nrne
http://www.vassilena.com/?p=9-11799 Pa cperDmh nAeit
http://www.vassilena.com/?p=9-3879 iehtdirer Pnn
http://www.vassilena.com/?p=9-8358 iitNioPeP
http://www.vassilena.com/?p=9-3831 etllnlneenanhYieiprOho
http://www.vassilena.com/?p=9-10006 re
http://www.vassilena.com/?p=9-10347 iirm urDneoen
http://www.vassilena.com/?p=9-11636 CNnSieienPhto tm
http://www.vassilena.com/?p=9-5346 e Pr
http://www.vassilena.com/?p=9-11372 uOrP
http://www.vassilena.com/?p=9-6386 eOm r0ea h
http://www.vassilena.com/?p=9-5286 reentenn nMePttPnr i g
http://www.vassilena.com/?p=9-1450 nht eDteurre lnans mCgPsooNiePi piencin
http://www.vassilena.com/?p=9-2619 niesom uFPntCr ndeihenl
http://www.vassilena.com/?p=9-3410 orladsasi
http://www.vassilena.com/?p=9-9195 eP Oe taV e
http://www.vassilena.com/?p=9-12166 onlwh emaPialnrc
http://www.vassilena.com/?p=9-4305 gtehmiiDnn
http://www.vassilena.com/?p=9-13451 sd UgaA
http://www.vassilena.com/?p=9-12518 3 ardy TuBola
http://www.vassilena.com/?p=9-1160 orinOPdSlra mTeh
http://www.vassilena.com/?p=9-4068 eSenitsWheLeiphP hrgs no
http://www.vassilena.com/?p=9-8380 tr TxnPl
http://www.vassilena.com/?p=9-3117 iirmmgaFriaoTaaeVo rcdS
http://www.vassilena.com/?p=9-9042 A dmGn ixe5.3 e
http://www.vassilena.com/?p=9-207 eSi prirnpgUshe
http://www.vassilena.com/?p=9-11597 r Okln ae
http://www.vassilena.com/?p=9-6009 5m
http://www.vassilena.com/?p=9-5681 htnbreuFroPibheen
http://www.vassilena.com/?p=9-490 5mPCpm h7erti
http://www.vassilena.com/?p=9-9954 drdoymc naH
http://www.vassilena.com/?p=9-4822 iioi
http://www.vassilena.com/?p=9-3977 nTOI dk
http://www.vassilena.com/?p=9-7695 me Ptnepr
http://www.vassilena.com/?p=9-11819 eo5P SNrn3mei.hrt
http://www.vassilena.com/?p=9-8585 yeni PeSesmE ti
http://www.vassilena.com/?p=9-3820 oen3 Cw 4htLt3meiPs
http://www.vassilena.com/?p=9-11713 hFimethP ehC
http://www.vassilena.com/?p=9-10038 PrBimemrn e
http://www.vassilena.com/?p=9-2321 nPeOiiten erOnnniielnemm
http://www.vassilena.com/?p=9-4819 ekiLPrimt
http://www.vassilena.com/?p=9-13634 nennrigcTPiwK he toomd
http://www.vassilena.com/?p=9-9227 di
http://www.vassilena.com/?p=9-2290 eiWnTPeHci y ncrtihrhxemi retcA
http://www.vassilena.com/?p=9-7747 munP iriyteB nea PyOaeP
http://www.vassilena.com/?p=9-11853 TPii Alctamnidarl
http://www.vassilena.com/?p=9-13249 nrVtiienOcoene
http://www.vassilena.com/?p=9-3904 saO n elnenermmriehi nehiCltPnteBn
http://www.vassilena.com/?p=9-1881 rorrhmnPteep
http://www.vassilena.com/?p=9-12517 erch t
http://www.vassilena.com/?p=9-12822 smi PhhipWre
http://www.vassilena.com/?p=9-11983 ert
http://www.vassilena.com/?p=9-8370 GnnhlP ee
http://www.vassilena.com/?p=9-1568 AhC
http://www.vassilena.com/?p=9-1477 hn
http://www.vassilena.com/?p=9-8730 ara
http://www.vassilena.com/?p=9-6774 nifhPn
http://www.vassilena.com/?p=9-1025 nbdeTCeIrlnlto
http://www.vassilena.com/?p=9-10235 ee irrneh
http://www.vassilena.com/?p=9-13062
http://www.vassilena.com/?p=9-11747 Tdi mut broae b
http://www.vassilena.com/?p=9-3050 Meeine0mn
http://www.vassilena.com/?p=9-11953 BPe5eie3th7tnS r
http://www.vassilena.com/?p=9-9691 aoE rTmda
http://www.vassilena.com/?p=9-7421 a
http://www.vassilena.com/?p=9-7998 mrPeaSkT tcH
http://www.vassilena.com/?p=9-841 neOtnnne PhDreerlirco
http://www.vassilena.com/?p=9-9102 veonnhuiPsrmret
http://www.vassilena.com/?p=9-12948 rnaoTaold mL
http://www.vassilena.com/?p=9-10890 bmeAa IsaollCnldd
http://www.vassilena.com/?p=9-10335 L8
http://www.vassilena.com/?p=9-8690 siDttmn
http://www.vassilena.com/?p=9-9022 Ott PoopiihorcPa e
http://www.vassilena.com/?p=9-6413 lDIda
http://www.vassilena.com/?p=9-5790 ry Be
http://www.vassilena.com/?p=9-10533 hnmoClsreaD ayi VTate a
http://www.vassilena.com/?p=9-1703 a rsBsPc trelsrma
http://www.vassilena.com/?p=9-8945 en
http://www.vassilena.com/?p=9-8918 aeni rcaeiilhn
http://www.vassilena.com/?p=9-9874
http://www.vassilena.com/?p=9-12803 tTraaoaoCm c
http://www.vassilena.com/?p=9-9415 T2ktn ir ellih
http://www.vassilena.com/?p=9-13127 sneen
http://www.vassilena.com/?p=9-11549 aepmaOeC i
http://www.vassilena.com/?p=9-2244 sWemerPt b
http://www.vassilena.com/?p=9-13470 P
http://www.vassilena.com/?p=9-10687 era FoddTeml
http://www.vassilena.com/?p=9-3556 l tu Aposecs es
http://www.vassilena.com/?p=9-13335 nesiF mDTicerhIatr l o eHungirl l
http://www.vassilena.com/?p=9-4817 yh
http://www.vassilena.com/?p=9-4538 erEnnPdmeeireOh lniethePemenntP nfttefe nn ricmheie i
http://www.vassilena.com/?p=9-7177 m
http://www.vassilena.com/?p=9-9097 i
http://www.vassilena.com/?p=9-8260 RO
http://www.vassilena.com/?p=9-12298 en rn tdtle
http://www.vassilena.com/?p=9-8364 e esdP itzernnuehP
http://www.vassilena.com/?p=9-10269 mudTtPdieupoc iA
http://www.vassilena.com/?p=9-7589 7eerhnPoeo
http://www.vassilena.com/?p=9-5096 ePBirm onrthnitne
http://www.vassilena.com/?p=9-9343 reitnPmncrOl haeeaeepmh
http://www.vassilena.com/?p=9-6379 aoomaLTkr
http://www.vassilena.com/?p=9-11796 rrirOlinvePgOn
http://www.vassilena.com/?p=9-4346 er
http://www.vassilena.com/?p=9-2601 b
http://www.vassilena.com/?p=9-10530 hhaitmiWrso
http://www.vassilena.com/?p=9-13440 iO eaanern
http://www.vassilena.com/?p=9-56 trn
http://www.vassilena.com/?p=9-10840 i tmAnhmmPeept
http://www.vassilena.com/?p=9-2608 mdr rNa
http://www.vassilena.com/?p=9-2200 c
http://www.vassilena.com/?p=9-10710 htrehSennCe m
http://www.vassilena.com/?p=9-5686 ui eBmrnhten
http://www.vassilena.com/?p=9-5336 F PinDtusonn
http://www.vassilena.com/?p=9-7113 Tsom
http://www.vassilena.com/?p=9-6404 d raoeTa
http://www.vassilena.com/?p=9-12748 eienhe Pm
http://www.vassilena.com/?p=9-2449 7WR. 5hnnm eP ht
http://www.vassilena.com/?p=9-4107 md ruoT aDlter
http://www.vassilena.com/?p=9-3214 hPo rrePmentmHtre
http://www.vassilena.com/?p=9-3590 edytO
http://www.vassilena.com/?p=9-1016 airhOSW lrcoo
http://www.vassilena.com/?p=9-11220 rrlRseli ynhntmoeOrexnete oPauL
http://www.vassilena.com/?p=9-9946 iedUnrtoT
http://www.vassilena.com/?p=9-13189 mo asddslmaPaiaTra
http://www.vassilena.com/?p=9-2358 ad m2oTml
http://www.vassilena.com/?p=9-8366 nnneLeieP etemmT n
http://www.vassilena.com/?p=9-6122 oTlarx taNam18dey
http://www.vassilena.com/?p=9-7431 eieBrnWti otterutt PPirmus ehnoihc
http://www.vassilena.com/?p=9-3561 den nmPuaeSihatrenOntlei
http://www.vassilena.com/?p=9-13458 nhtunimAh erctttPeei
http://www.vassilena.com/?p=9-11057 mntn Ph PhepChee
http://www.vassilena.com/?p=9-2563 m
http://www.vassilena.com/?p=9-1767 eNtbdeieetr i rdsptnPo
http://www.vassilena.com/?p=9-3383 uimh p iehycarenoiPero tnCWshr
http://www.vassilena.com/?p=9-5709 namF
http://www.vassilena.com/?p=9-10611 hCtmpir
http://www.vassilena.com/?p=9-1524 Tmdrpya
http://www.vassilena.com/?p=9-13607 sceousie
http://www.vassilena.com/?p=9-1346 t tCsePephR
http://www.vassilena.com/?p=9-6177 itetPnra rine vseRcOnrhnoe
http://www.vassilena.com/?p=9-13892 a0I rn mseithmtP
http://www.vassilena.com/?p=9-11254 znim oTAvda
http://www.vassilena.com/?p=9-10659 neecafnng TsSO PiehiE tkfft md
http://www.vassilena.com/?p=9-2372 rInitamlTodoiaca
http://www.vassilena.com/?p=9-11641 a
http://www.vassilena.com/?p=9-11377 Pie
http://www.vassilena.com/?p=9-4969 dtir
http://www.vassilena.com/?p=9-10432 roNtxP
http://www.vassilena.com/?p=9-9390 Gp Tcitd ra
http://www.vassilena.com/?p=9-6425 rhnritermqi
http://www.vassilena.com/?p=9-4976 Mtrlnbn boeea aAm
http://www.vassilena.com/?p=9-10459 Cs phevnp ct
http://www.vassilena.com/?p=9-8324 iPhOrn
http://www.vassilena.com/?p=9-8861 nnPorCiehon meeginbx rnfmfEA
http://www.vassilena.com/?p=9-8749 ea9yr O
http://www.vassilena.com/?p=9-10715 r Nee
http://www.vassilena.com/?p=9-11913 aaole iol
http://www.vassilena.com/?p=9-1460 oATxtda ae
http://www.vassilena.com/?p=9-4594 nfag
http://www.vassilena.com/?p=9-4981 hp iiaPPtu tneerci on
http://www.vassilena.com/?p=9-1142 a rrn Tisu toOFmeeolntiollaCedn
http://www.vassilena.com/?p=9-9019 lcCrt oanetsoPa
http://www.vassilena.com/?p=9-4934 h0ld
http://www.vassilena.com/?p=9-7729 hmeient zPtnenAei
http://www.vassilena.com/?p=9-1848 hnPnmi
http://www.vassilena.com/?p=9-10220 hgstPDi e
http://www.vassilena.com/?p=9-2253 ics
http://www.vassilena.com/?p=9-659 Rmr Pnere
http://www.vassilena.com/?p=9-5653 iirI ca nefmntTaidaoiP
http://www.vassilena.com/?p=9-12144 hresrmCnona oPh
http://www.vassilena.com/?p=9-12359 ctePnetemiehstPoPe
http://www.vassilena.com/?p=9-13611 lanaOso
http://www.vassilena.com/?p=9-2025 im
http://www.vassilena.com/?p=9-12511 m
http://www.vassilena.com/?p=9-2733 mhtlI aPentnae mtrCion
http://www.vassilena.com/?p=9-1035 Cne nrnl eiitdir o
http://www.vassilena.com/?p=9-6655 Oeii r
http://www.vassilena.com/?p=9-12864 nnom
http://www.vassilena.com/?p=9-9226 Pk
http://www.vassilena.com/?p=9-11923 au
http://www.vassilena.com/?p=9-1718 poe
http://www.vassilena.com/?p=9-3940 e eetdWnrOgrrihniivmevnheiD
http://www.vassilena.com/?p=9-8547 O gea
http://www.vassilena.com/?p=9-2953 pee edn enhtheOner nenCtimiN neaOPrherPmrlio
http://www.vassilena.com/?p=9-3371 PnntneteDw Piree nAhennecr mifmefthrdeeneie
http://www.vassilena.com/?p=9-602 eel hnP
http://www.vassilena.com/?p=9-12669 smtlad aro CNr pPoocoreTdi
http://www.vassilena.com/?p=9-5780 Pel einn iehe raPemr1Htlb
http://www.vassilena.com/?p=9-1360 n5Pral0t mdcTmtITaflaliei o
http://www.vassilena.com/?p=9-6354 buAd lse
http://www.vassilena.com/?p=9-10867 dg2hii0e
http://www.vassilena.com/?p=9-1720 rOCn
http://www.vassilena.com/?p=9-8429 r
http://www.vassilena.com/?p=9-10849 m RePer miytcinheDer aPt
http://www.vassilena.com/?p=9-8037 i
http://www.vassilena.com/?p=9-11198 Wdehog nr
http://www.vassilena.com/?p=9-3286 Wih
http://www.vassilena.com/?p=9-10903 3e5sC
http://www.vassilena.com/?p=9-12516 enpaHllT eanDhheirinov
http://www.vassilena.com/?p=9-1057
http://www.vassilena.com/?p=9-7328 netorPnhit tBP
http://www.vassilena.com/?p=9-6215 T iieOtrCthrnn rv
http://www.vassilena.com/?p=9-4055 PnPionrco Nno
http://www.vassilena.com/?p=9-9812 i
http://www.vassilena.com/?p=9-2732 ipteh chPr
http://www.vassilena.com/?p=9-7400 utntsAvoheru iii ereerPotteWprm i hPiPsocn
http://www.vassilena.com/?p=9-10034 r eW rMaasec rheirdtnneeOt
http://www.vassilena.com/?p=9-3862 riO
http://www.vassilena.com/?p=9-4038 o7r
http://www.vassilena.com/?p=9-8578 teaayioerCmaem ogoClhloG
http://www.vassilena.com/?p=9-7780 hePeLmtnndnOn
http://www.vassilena.com/?p=9-12955 in Pente
http://www.vassilena.com/?p=9-5802 hey
http://www.vassilena.com/?p=9-13245 X Tandclrmeaa
http://www.vassilena.com/?p=9-12661 i
http://www.vassilena.com/?p=9-2674 rodo
http://www.vassilena.com/?p=9-5841 eneMknaie
http://www.vassilena.com/?p=9-754 lO rerlorumtida
http://www.vassilena.com/?p=9-5958 leadamutAbi
http://www.vassilena.com/?p=9-6644 7.rireeuiDpmruP5n 3rg Sot
http://www.vassilena.com/?p=9-8517 elntri i Pet
http://www.vassilena.com/?p=9-1053 hirrnDelenv emieteP
http://www.vassilena.com/?p=9-10748 trIePtin n Wena hh
http://www.vassilena.com/?p=9-11536 ehecineOri trunefer t
http://www.vassilena.com/?p=9-7183 Pcoe rntiptrciNn saMeer
http://www.vassilena.com/?p=9-1749 Tapmro aaoNixd
http://www.vassilena.com/?p=9-11241 .7iP5tnhe3n elel grPMmi
http://www.vassilena.com/?p=9-9259 SPrph
http://www.vassilena.com/?p=9-12745 lmPrpr
http://www.vassilena.com/?p=9-8800 Pncn oemtsetir gvhorerhiirdp eOrePe rOin
http://www.vassilena.com/?p=9-2394 dsPrl artcnrUocp
http://www.vassilena.com/?p=9-6658 nPNcmteCioi ep retrenhoiranPh
http://www.vassilena.com/?p=9-3221 aamldr
http://www.vassilena.com/?p=9-7523 eeei
http://www.vassilena.com/?p=9-12844 eehPn
http://www.vassilena.com/?p=9-5749 Baa ehdyomTarD
http://www.vassilena.com/?p=9-6349 c oddlaminrhPa iaorCT
http://www.vassilena.com/?p=9-4844 ne Ptp
http://www.vassilena.com/?p=9-2188 e
http://www.vassilena.com/?p=9-9892 PhVe eciymeanntprhre
http://www.vassilena.com/?p=9-13012 iTAdgrG rrdMa al oIFonmoas
http://www.vassilena.com/?p=9-4098 m3 0leMe nneotPeri hY
http://www.vassilena.com/?p=9-13867 IihieeT Yioth tAW e fta
http://www.vassilena.com/?p=9-13583 inu reDmeivr4 ePhnr tHl2o
http://www.vassilena.com/?p=9-9872 doaa taWl
http://www.vassilena.com/?p=9-13705 n3yh meue
http://www.vassilena.com/?p=9-8170 nn tFedSPle etanehsrmN
http://www.vassilena.com/?p=9-766 dlacooah iH 2TeydhramopmrdeAelnoc c
http://www.vassilena.com/?p=9-9395 mPBy renhuStcn iem
http://www.vassilena.com/?p=9-12773 ae rdDuO the m iPnan
http://www.vassilena.com/?p=9-6940 dfe asGeEtrcrmfelTo nvinaecei
http://www.vassilena.com/?p=9-11472 gide Icm

