您的当前位置:首页正文

HTTP协议(二)

来源:图艺博知识网

简单的HTTP协议

HTTP协议和TCP/IP协议族内的其他众多的协议相同,用于客户端和服务器之间的通信。在应用HTTP协时,必定是一端担任客户端角色,另一端担任服务器角色。并且HTTP协议能够分辨出哪端是服务器,哪一端是客户端。

通过请求和响应的交换达成通信

首先声明:请求必定为客户端发出,最后服务器响应请求并且返回
下面我们来看一个例子:

-1464766638103.png

我们来分布讲解
首先看客户端发送请:

  • 起始行开头的GET表示请求访问服务器的类型,成为方法(method)
  • /index.htm指明了请求访问的资源对象,也叫请求的URI
  • 最后的HTTP/1.1,即HTTP版本号这段话翻译过来就是:请求访问某台HTTP服务器上的/index.htm页面的资源

请求报文时由请求方法、请求URI、协议版本、科员的请求首部字段和内容实体构成的

POST /form/entry HTTP/1.1
//请求首部字段
Host: hackr.jp
Connection:keep-alive
Content-type: 

接下来我们来看返回的东西:

HTTP/1.1 200 OKDate: Tue,10 Jul 2016 06:50:15 GMT
Content-type: text/html
Content-Length:362
<html>
......
  • HTTP/1.1表示服务器的对应HTTP版本
  • 200 OK便是处理结果的状态码和原因短语
  • 下面是响应首部字段,是首部字段内的一个属性
  • 下面的html为主体

HTTP重要的概念

  • HTTP是不保存状态的协议,也就是说HTTP自身不会记住上一次返回的东西。但是虽然HTTP没有保持状态的功能,所以人们引入了Cookie技术。这个在以后会讲。
  • 请求URI定位资源

HTTP的方法

  • GET :获取资源
  • POST: 传输实体主体
  • PUT:传输文件
  • HEAD:获得报文首部,与GET类似,但是不返回报文的主题部分
  • DELETE:删除文件
  • OPTIONS:询问支持的方法,查询针对请求URI指定的资源支持的方法
  • TRACE:追踪路径,让web服务器将之前的请求通信环给客户端的方法
  • CONNECT:要求用隧道协议连接代理,要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信,主要使用了SSL和TLS把通信的内容加密后经网络隧道传输。

在这里列举的方法中,LINK和UNLINK已被HTTP/1.1废弃,就不再复述。

HTTP的优化

试想一下,我们在上网的过程中,是不是会经常不停的打开网页,可能一个网页里面都嵌套着许多问题。而HTTP的请求的三次握手,而且没请求一次就得断开

持久化

为了解决上述问题,HTTP/1.1想出了持久连接,意味着三次握手成功后,不会立刻断开,而是在等全部请求结束后才断开,这就大大的减少了通信资源的浪费。

管线化

持久连接使得多数请求以管线话方式得到可能,让原来的一条请求必须等到返回后才能开始另一个请求成为历史,管线化后,能够同时发送多个请求,而不需要一个接一个地等待响应了

使用Cookie的状态管理

Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态

Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。>服务器发现客户端发送过来的Cookie后,回去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

Top