title: Can you give me some clarification about the REST architecture?
body: <p>I am studying for a developer certification and I have some doubt related to the general concept of <strong>REST</strong> and <strong>REST Web Services</strong>.</p>
  
  <p>From what I can understand <strong>REST</strong> is more related to software\network architecture style consisting of guidelines and best practices for creating scalable web services respect to a specific technology (differently from <strong>SOAP</strong> that is a specific implemented network protocol). </p>
  
  <p>The first doubt is: "is <strong>REST</strong> related only to web services implementation or can be related also to other purposes? If it could be related to other purposes what are?</p>
  
  <p>So from what I can understand using this <strong>REST</strong> style the messagges are send and receive directly using the <strong>HTTP</strong> protocol without using an intermediate protocol as <strong>SOAP</strong>.</p>
  
  <p>I know that <strong>REST</strong> is statless (does not maintain information about previous states) so if I use the <strong>REST</strong> style I can't use the <strong>Http Session</strong> or <strong>coockies</strong> to mantain informations about what happens before. If it is true, why? what is the benefit of a statles managment? What is the difference with SOAP? Is SOAP statefull? (it seems to me not but I can say wrong things).</p>
  
  <p>Using <strong>REST</strong> style the <strong>resources</strong> are modelled as <strong>noun</strong>, for example:</p>
  
  <pre><code>http://mybank.com/banking/accounts/123456789
  </code></pre>
  
  <p>And then I can perform a limited set of operations on these resources, operations described by: <strong>GET</strong>, <strong>PUT</strong>, <strong>POST</strong>, <strong>DELETE</strong></p>
  
  <p>Reading on the course documentation it say that these operations are the default operation in case of the architecture works over <strong>Http</strong> protocol. So are these operations the only operations that I can perform or can be used others? Can you explain me this thing?</p>
  
  <p>Maybe I have a big gap in the Http protocol knowledge, I only know that Http protocol only supports the <strong>POST</strong> and <strong>GET</strong> operations. So what exatly are these <strong>PUT</strong> and <strong>DELETE</strong> operations? Are Http protocol specific operations as <strong>GET</strong> and <strong>POST</strong>? What is the difference between <strong>PUT</strong> and <strong>POST</strong>? and why <strong>REST</strong> architecture use <strong>PUT</strong> instead <strong>POST</strong>?</p>
  
  <p>Tnx</p>