http协议总结(状态码,cookie,session)

写博客是用来总结学习知识和成果的,本文为博主原创文章,未经博主允许不得转载,谢谢

http协议:

  • 请求组成:请求行,消息报头,请求正文

  • 请求常用的方法:

    GET: 请求指定的页面信息,并返回实体主体

    POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体

http状态及响应码:

在JMeter中执行http请求时,会遇到很多情况,我们要清楚每个返回的状态码,最起码要了解常用的状态码是什么意思:
1(信息类):表示接收到请求并且继续处理
100:客户必须继续发出请求
101:客户要求服务器根据请求转换HTTP协议版本
2(响应成功):表示动作被成功接收、理解和接受
200:表明该请求被成功的完成,所请求的资源发送回客户端
201:提示知道新文件的URL
202:接受和处理,但处理未完成
203:返回信息不确定或不完整
204:请求收到,但返回信息为空
205:服务器完成了请求,用户代理必须复位当前已经浏览过的文件
206:服务器已经完成了部分用户的GET请求
3(重定向类):为了完成指定的动作,必须接受进一步的处理
300:请求的资源可在多处得到
301:本网页被永久性转移到另一个URL
302:请求的网页被转移到一个新的地址,但客户访问仍继续通过原始URL地址,重定向,新的URL会在response中的Location中返回,浏览器将会使用新的URL发出新的Request
303:建议客户访问其他URL或访问方式
304:自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存了,还可以继续使用
305:请求的资源必须从服务器置顶的地址得到
306:前一版本HTTP中使用的代码,现行版本中不再使用
307:申明请求的资源临时性删除
4(客户端错误):请求包含错误语法或不能正确执行
400:客户端请求有语法错误,不能被服务器所理解
401:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
402:保留有效ChargeTo头响应
403:禁止访问,服务器收到请求,但是拒绝提供服务
404:一个404错误表明可连接服务器,但服务器无法取得所请求的网页,请求资源不存在,eg:输入了错误的URL
405:用户在Request-Line字段定义的方法不允许
406:根据用户发送的Accept拖,请求资源不可访问
407:类似401,用户首先在代理服务器上得到授权
408:客户端没有在用户指定的时间内完成请求
409:对当前资源状态,请求不能完成
410:服务器上不再有此资源且无进一步的参考地址
411:服务器拒绝用户定义的Content-Length属性请求
412:一个或多个请求头字段在当前请求中错误
413:请求的资源大于服务器允许的大小
414:请求的资源URL长于服务器允许的长度
415:请求资源不支持请求项目格式
416:请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段
417:服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长
5(服务端错误类):服务器不能正确执行一个正确的请求
500:服务器遇到错误,无法完成请求
501:未实现
502:网关错误
503:由于超载或停机维护,服务器目前无法使用,一段时间后可能恢复正常


  • 通过Cookies保存状态信息

通过Cookies,服务器就可以清楚的知道请求2和请求1来自同一个客户端。
这里写图片描述

  • 通过Session保存状态信息:
    Session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。
    当程序需要为某个客户端请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识,称为session id,如果已包含一个session id则说明以前已经为此客户创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且声称一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。
    session id:一串银行卡号
    cookie还会保存哪家银行卡,姓名等等

HTTP中的方法大概是以下这些:

  1. GET:通过请求URI得到资源
  2. POST:用于添加新的内容
  3. PUT:用于修改某个内容
  4. DELETE:删除某个内容
  5. CONNECT:用于代理进行传输,如使用SSL
  6. OPTIONS:询问可以执行哪些方法
  7. PATCH:部分文档更改
  8. PROPFIND:查看属性
  9. PROPPATCH:设置属性
  10. MKCOL:创建集合(文件夹)
  11. COPY:拷贝
  12. MOVE:移动
  13. LOCK:加锁
  14. UNLOCK:解锁
  15. TRACE:用于远程诊断服务器
  16. HEAD:类似于GET,但是不返回body信息,用于检查对象是否存在,以及得到对象的元数据

猜你喜欢

转载自blog.csdn.net/qq_36800800/article/details/82387670
今日推荐