客户端向服务端发起请求,服务端进行响应,如果响应了,就说明请求执行了

HTTP是不保存状态的协议

协议本身不保留之前一切的请求或响应报文的信息

请求报文

GET(方法) /index.htm(URI) HTTP/1.1(协议版本)

Host:hackr.jp (请求字段首部)

name=hehe (内容实体)

响应报文

HTTP/1.1(协议版本) 200(状态码) OK(状态原因短语)

Date: Tue, 10 Jul 2012 03:50:15 GMT (时间)

Content-Length: 362

Content-Type: text/html (首部字段的属性)

(空一行)

。。。。 (实体主体)

方法


  • GET

    获取资源

  • POST

    传输实体主体

    功能与GET很相似,但是主要目的不是获取响应的主体内容

  • put

    传输文件

    安全性问题,一般需要配合Web引用程序的验证机制

  • 获得报文首部

    用来确认URI的有效性及资源更新的日期时间

  • DELETE

    删除文件

    与PUT类似,具有安全性问题

    需要配合Web应用程序的验证机制

  • OPTIONS

    询问支持的方法

  • TRACE

    追踪路径

    具体方法就是在首部字段中填入一个数,然后每次经过一个服务器端都会数字减一,刚好为零的是否,停止传输,最后返回200 OK

  • CONNECT

    用隧道协议连接代理

持久连接


HTTP/1.0 版本是不持久连接

开TCP,HTTP请求响应,关TCP每次都要重复,增加通信量的开销

持久连接 HTTP/1.1

只要任意一端没有明确提出断开连接,保持TCP连接状态,HTTP还是无状态的

持久连接可以使得请求可以管线化方式发送,就是流水线一样发送,而不是等待一个响应完再发另外一个

用来处理HTTP无状态的问题

  1. 请求
  2. 在响应中添加cookie
  3. 请求中添加Cookie
  4. 对照Cookie,获得状态