HTTP协议

3 篇文章 0 订阅

HTTP(HyperText Transfer Protocol)超文本传输协议,用于客户端和服务器端之间的通信。

HTTP协议的特点:

  1. 无状态:HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和相应之间的状态进行保存。
  2. 无连接:每进行一次HTTP通信就要断开一次TCP连接。
  3. 简单快速:HTTP协议使用URI(Uniform Resource Identifier,统一资源标识符)定位互联网上的资源,需要访问哪一资源就输入对应的URL(Uniform Resource Locator,统一资源定位符),URL是URI的子级。
  4. 灵活:可以传输各种类型的数据。

HTTP请求报文:HTTP协议交互的信息称为HTTP报文。请求端(客户端)的报文称为请求报文,响应端(服务器端)的称为响应报文。

    请求报文的结构:

  • 请求行:包含用于请求的方法、HTTP协议及版本、请求的URI;
  • 请求头:包含请求的各种条件和属性(key:value键值对);
  • 空行:分割请求头和请求体之间的空行;
  • 请求体:

响应报文的结构:

  • 状态行:包含响应结果的状态码(200),原因短语(ok)及HTTP版本;
  • 响应头:包含响应的各种条件和属性(key:value键值对);
  • 空行:分割响应头和响应体之间的空行;
  • 响应体:服务器返回的文档。

告知服务器意图的HTTP方法:

  • POST:传输资源;
  • GET:获取资源;
  • HEAD:获取报文首部;
  • PUT:传输文件;
  • DELETE:删除文件。

POST与GET请求的区别:

  • GET在浏览器回退是无害的,而POST会提交请求;
  • GET请求会被浏览器主动缓存,POST不会,除非手动设置;
  • GET请求在URL中传输的参数是有长度限制的,而POST无长度限制;
  • GET请求的参数通过URL传递(不能传递敏感信息),POST的参数放在Request body中;
  • GET请求的参数会被完整保留在浏览器历史记录中,POST请求中的参数不会被保留。
  • ……

HTTP状态码:

HTTP状态码的类别
 类别原因短语
1××信息状态码接受的请求正在处理
2××成功状态码请求正常处理完毕
3××重定向状态码需要进行附加操作以完成请求
4××客户端错误状态码服务器无法处理请求
5××服务端错误状态码服务器处理请求出错
HTTP状态码的含义
状态码含义
200客户端发来的请求在服务器端被正常处理
206客户端进行了范围请求,而服务器端成功的执行了这部分的GET请求。响应报文中的Content-Range指定范围的实体内容
301永久重定向,请求的资源已经被分配了新的URI,以后应使用资源现在的URI
302临时重定向,请求的资源已经被临时分配了新的URI
304服务端资源未改变,可直接使用客户端为过期的缓存
400请求报文中存在语法错误
403请求资源的访问被服务器拒绝
404服务器上无法找到请求的资源
500服务器端在执行时发生了错误
503服务器暂时处于超负荷或正在进行停机维护,现在无法处理请求

持久连接:持久连接是为了解决HTTP协议无连接的特性(比如使用浏览器访问包含多张图片的HTML页面时,在发送请求访问HTML资源同时,也会请求该页面包含的其他资源。HTTP协议每次的请求都会造成无谓的TCP连接和断开,增加了通信的开销)。为了解决这个问题,HTTP\1.1和一部分HTTP\1.0想出了持久连接,也就是HTTP keep-alive的方法。持久连接的特点是只要任意一端没有明确提出断开连接,则保持TCP连接状态。在HTTP\1.1中,所有的连接默认都是持久连接,但在HTTP\1.0中并未标准化。

管线化:持久连接使得多次请求以管线化方式发送成为可能,从前发送请求需要等待并收到响应,才能发送下一个请求。管线化技术出来后,不用等待响应就可以直接发送下一个请求。这样就能够同时发送多个请求,而不用一个个等待响应了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值