计算机网络——Http请求与响应

1. 请求

1.1 请求报文结构

在这里插入图片描述

在这里插入图片描述

1.2 请求行

1.2.1 请求方法

  • 幂等性:不管进行多少次重复操作,都是实现相同的结果
  • GET 查:具有幂等性

GET方法要求服务器将URL定位的资源放在响应报文的数据部分,发送给客户端。请求数据以地址的形式表现在请求行,? 后是请求的参数,&拼接参数,传递参数长度受浏览器限制

  • DELETE 删:具有幂等性
  • POST 狭义:增,不具有幂等性

POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,这样POST方式对传送的数据大小没有限制,而且也不会显示在URL中。POST方式请求行中不包含数据字符串,这些数据保存在“请求数据”部分,各数据之间也是使用‘&’符号隔开。

比如:POST http://www.forum.com/articles 的语义是在 http://www.forum.com/articles 下创建一篇帖子,HTTP响应中应包含帖子的创建状态以及帖子的URI。两次相同的POST请求会在服务器端创建两份资源,它们具有不同的URI。所以,POST方法不具备幂等性。

  • PUT 狭义:改,具有幂等性

PUT所对应的URI是要创建或更新的资源本身。比如:PUT http://www.forum/articles/4231 的语义是创建或更新ID为4231的帖子。对同一URI进行多次PUT的副作用和一次PUT是相同的。因此,PUT方法具有幂等性。

POST方法和PUT方法请求最根本的区别是请求URI(Request-URI)的含义不同。POST请求里的URI 指示一个能处理请求实体的资源(译注:此资源可能是一段程序,如jsp 里的servlet) 。此资源可能是一个数据接收过程,一个网关(gateway,注:网关和代理的区别是:网关可以进行协议转换,而代理不能,只是起代理的作用,比如缓存服务器其实就是一个代理),或者一个单独接收注释的实体。对比而言,PUT方法请求里的URI标识请求里封装的实体一一用户代理知道URI 意指什么,并且服务器不能把此请求应用于其它资源(resource)。如果服务器期望请求被应用于一个不同的URI,那么它必须发送301(永久移动)响应;用户代理可以自己决定是否重定向请求。一个单独的资源可能会被许多不同的URI指定。如:一篇文章可能会有一个URI指定当前版本,而这个URI区别于这篇文章其它特殊版本的URI。这种情况下,对一个通用URI的PUT请求可能会导致其资源的其它URI请求被源服务器重定义。HTTP/1.1没有定义PUT方法对源服务器的状态影响。

  • PATCH、HEAD(仅请求响应首部)、OPTIONS(返回请求的资源所支持的方法)、TRACE(追求一个资源请求中间所经过的代理)

1.2.2 请求URL

在这里插入图片描述

1.2.3 请求协议

常用的有HTTP/1.0和HTTP/1.1

1.3 请求头

  • Accpet

    • 告诉服务端,客户端接收什么类型的响应
  • Referer

    • 表示这是请求是从哪个URL进来的,比如想在网上购物,但是不知道选择哪家电商平台,你就去问度娘,说哪家电商的东西便宜啊,然后一堆东西弹出在你面前,第一给就是某宝,当你从这里进入某宝的时候,这个请求报文的Referer就是www.baidu.com
  • Cache-Control

    • 对缓存进行控制,如一个请求希望响应的内容在客户端缓存一年,或不被缓可以通过这个报文头设置
  • Accept-Encoding

    • 这个属性是用来告诉服务器能接受什么编码格式,包括字符编码,压缩形式(一般都是压缩形式),例如:Accept-Encoding:gzip, deflate(这两种都是压缩格式)
  • Host

    • 指定要请求的资源所在的主机和端口
  • User-Agent

    • 告诉服务器,客户端使用的操作系统、浏览器版本和名称

1.4 请求数据

2. 响应

2.1 响应报文结构

在这里插入图片描述

在这里插入图片描述

2.2 状态行

2.2.1 协议版本

2.2.2 状态码

参考链接:常见常用的网络状态码

2.2.3 状态码描述

2.3 响应头

  • Cache-Control

    • 响应输出到客户端后,服务端通过该属性告诉客户端该怎么控制响应内容的缓存
  • ETag

    • 表示你请求资源的版本,如果该资源发生啦变化,那么这个属性也会跟着变
  • Location

    • 在重定向中或者创建新资源时使用
  • Set-Cookie

    • 服务端可以设置客户端的cookie

2.4 响应正文

3. 参考链接

4. 扩展:http请求与响应全过程

参考链接:http请求与响应全过程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值