HTTP协议的工作原理

一、HTTP协议用于客户端和服务端之间的通信

1、http协议规定,请求是从客户端发出,最后服务器端相响应请求并返回

2、请求报文是由请求方法,请求URI,协议版本,可选的请求首部字段和内容实体构成。

      

3、响应报文基本上由协议版本,状态码,解释状态码的原因短语,可选的响应首部字段以及实体主体构成。

      

4、告知服务器意图的HTTP方法

  • GET:获取资源,如果为资源则保持原样返回,如果为程序则返回程序执行后的结果。
  • POST:传输实体主体
  • PUT:用来传输文件,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。(自身不带验证机制,存在安全问题,一般不使用该方法)
  • HEAD:与GET方法类似,只是不返回报文主体部分。用于确认URI的有效性及资源更新的日期时间等。
  • DELETE:与put相反,表示删除某资源,一般不适用。
  • OPTIONS:询问支持的方法。
  • TRACE:追踪路径,将web服务器之前等请求通信环给客户端的方法。在MAX-Forwards首部字段中填入数值,每经过一个服务器段,该数字就-1,当数值刚好为0时,就停止继续传输,最后收到请求的服务器则返回状态码200 OK的响应。客户端通过TRACE方法可以查询发送出去的请求是如何被加工的。(不常用)
  • CONNECT:要求用隧道协议连接代理,实现用隧道协议进行TCP通信。(使用SSL和TLS)

5、持续连接节省通信量

传统每请求一次就要三次握手连接tcp四次握手断开,但是原来传输量特别小,所以影响不大,但是当下一个html可能包含n多图片,会造成过多无谓大通信量。

  • 持久连接:只要任意一段没有明确提出断开连接,则保持TCP连接。HTTP1.1默认所有连接都是持久连接。

       

  • 管线化:曾经是发送请求后需要等待并收到响应,才会发送下一个请求。管线化技术不用等待响应亦可直接发送下一个请求。可以让更多请求更快结束。(速度快很多)

         
 

二、使用Cookie的状态管理

http协议本身不保留之前一切的请求和响应报文的信息,这是为了更快地处理大量食物,确保协议的可伸缩性,而特意把HTTP协议设计成如此简单。但是假如用户登陆了某界面,需要保存用户登陆过这个事实该怎么办?于是引入了Cookie技术。于是乎就可以管理状态了。

如果让服务器管理全部客户端状态会成为负担。故引入Cookie技术解决该矛盾:Cookie会根据从服务端发送的响应报文中一个叫做set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie的值发送出去。

服务器发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的纪录,得到最终状态信息。

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值