测试入门:客户端、服务端与HTTP实战解析

从测试视角理解客户端、服务端及 HTTP 相关概念

大家好,我又来分享啦!,客户端和服务端以及http相关的响应是面试高频考点,快来跟我一起了解一下吧!


一、客户端与服务端:就像 “顾客” 和 “餐馆后厨”

软件里的客户端和服务端,关系就跟餐馆里顾客和后厨一样 —— 一个提要求,一个来处理。你想想自己去饭馆吃饭的样子,就特好理解。

客户端:能直接摸到、能操作的 “提要求的”

客户端就是咱们能直接碰到、能操作的那些东西,跟餐馆里的顾客似的。比如手机上的微信、电脑里的 Chrome 浏览器,还有咱们测试时常用的 Postman,这些都算客户端。

从测试的角度看,测客户端主要就是看 “用户怎么提要求” 和 “提了要求后,前面的界面有啥反应”。就拿登录来说,得看看登录按钮点了有没有反应、输入框能不能限制输入长度、点了登录后有没有 “正在加载” 的提示。你肯定遇到过点按钮没动静的情况吧?这就是测客户端要注意的。这种测试不用管后台怎么弄,就看用户能直接看到的界面有没有问题。

服务端:藏在后面的 “处理中心”

服务端是后台的系统,负责接客户端的要求然后处理,就像餐馆的后厨。比如微信的服务器,就是它把咱们发的消息传给对方;电商平台的服务器,咱们下单后,是它在处理订单、改库存。

测服务端重点就在 “后台怎么处理这些要求”。比如说,用户输对了账号密码,服务端能不能返回登录成功;输错了密码,能不能给出 “密码错了” 的提示。你有没有想过,为啥输对密码能登上,输错了就有提示?这就是服务端在干活。这种测试不管前面界面长啥样,就盯着后台的逻辑对不对。


二、HTTP 方法(POST、GET、DELETE、PUT):好比 “对储物柜的四种操作”

HTTP 方法就是客户端给服务端发要求时的 “操作类型”,就像咱们对储物柜做的查看、存放、替换、取出这四种动作,每种都有自己的用处。你把储物柜当成服务端,自己当成客户端,一下子就明白了。

GET:“看看” 储物柜里的东西

GET 方法就是从服务端拿数据,跟看看储物柜里有啥似的,不会动里面的东西。比如在电商平台看商品详情,客户端就是用 GET 方法跟服务端要商品信息的。

测试的时候得注意,GET 请求的参数会直接显示在网址里,所以不能用它传敏感的东西,比如密码。要是测登录的时候,发现用 GET 方法传密码,那肯定是有问题。你可以在浏览器地址栏输个带参数的网址试试,参数是不是能直接看到?

POST:“放” 东西到储物柜

POST 方法是给服务端提交新数据,就像把东西放进储物柜。用户注册、提交登录信息的时候,客户端就是用 POST 方法把数据发给服务端的。

POST 请求的参数藏在请求体里,不在网址上显示,所以适合传敏感信息。测试的时候,得看看提交数据后,服务端能不能存对,还有能不能拦住重复提交,比如不让同一个账号注册两次。你注册账号的时候,有没有遇到过 “这个账号已经注册过了” 的提示?这就是服务端处理 POST 请求的反应。

PUT:“换” 储物柜里的东西

PUT 方法是把服务端的数据整个更新,就像把储物柜里的旧东西全换成新的。比如用户改个人资料,改了姓名、手机号这些,客户端就用 PUT 方法发新数据。

测试的时候,要看看更新后的数据是不是把旧的全盖住了,还有要是没填必填的项,服务端能不能给出正确的提示。你改个人信息时,没填必填的,是不是会有提示?这就是测试要注意的。

DELETE:“拿” 出储物柜里的东西

DELETE 方法是删服务端的数据,就像从储物柜里把东西拿出来。比如用户删订单,客户端就是用 DELETE 方法告诉服务端 “把这个订单删了”。

测试的时候,一定要确认数据是不是真的删了,还有要是用户没权限删某个数据,服务端能不能拒绝,并且给个提示。你试过删别人的订单吗?肯定删不了吧?这就是权限在起作用。


三、响应状态码:服务端给客户端的 “结果通知”

服务端处理完客户端的要求后,会返回一个数字的响应状态码,就像外卖 APP 给咱们显示 “已接单”“已送达”“送不了” 一样,就是告诉客户端处理得怎么样了。你点外卖后,肯定很关心订单状态吧?响应状态码就跟这差不多。

2xx(成功):“没问题,弄好了”

  • 200:就是说请求处理好了,结果也返回了,比如登录成功、拿到商品信息,都可能出现这个码,代表一切正常。
  • 201:表示新数据建好了,比如用户注册成功,服务端就会返回这个码。

测试的时候,客户端发的要求没问题(比如输对了登录信息),服务端就该返回 2xx 的码。你登常用的 APP,能登上的时候,背后就是 200 这个码在起作用。

3xx(跳转):“去别的地方拿结果”

  • 302:是临时跳转,比如没登录就想进个人中心,系统会自动跳到登录页,就是这个码在弄。
  • 304:意思是请求的数据没更新,服务端让客户端直接用缓存里的就行。

测试的时候,要看看跳转对不对,还有缓存能不能正常用。你有没有没登录就想看个人信息,结果被转到登录页的经历?这就是 302 码的作用。

4xx(客户端错误):“你的请求有问题”

  • 400:就是请求的参数错了,比如登录时没填用户名,就会出现这个码。
  • 401:表示用户没登录,或者登录状态失效了,比如没登录就想查订单,服务端就会返回这个码。
  • 403:是说用户没权限访问,比如被拉黑的用户想登录,就会收到这个码。
  • 404:表示要找的东西不存在,比如输错了网址,就会出现这个码。一般是网址输错了,或者要找的东西被删了、移走了。

测试的时候,客户端发的请求有问题(比如没填用户名就登录),服务端得返回对应的 4xx 码,还得有清楚的提示。你有没有输错过网址,看到 “页面不存在”?这就是 404 码在提醒你。

5xx(服务端错误):“服务端出问题了”

  • 500:表示服务端内部出错了,很可能是代码有 bug。
  • 503:说明服务端暂时处理不了请求,比如秒杀的时候,一下来太多人,服务器忙不过来。

测试的时候,客户端发的请求是对的,却收到 5xx 的码,那就是服务端有问题,得告诉开发。你有没有遇到过某个 APP 突然打不开的情况?很可能就是服务端出问题,返回 5xx 码了。


四、用登录场景把所有概念串起来

咱们就拿登录来说,把上面这些概念串一串,就更清楚了:

用户在浏览器(客户端)输完账号密码,点登录,这时候客户端会生成一个 POST 请求(因为要传账号密码这种敏感信息,POST 更安全),发给服务端。

服务端收到后,会验证账号密码:

  • 要是验证通过,服务端返回 200 码和 “登录成功”,客户端收到后,就跳到首页。
  • 要是密码错了,服务端返回 400 码和 “密码错误”,客户端就把这个提示给用户看。
  • 要是服务端因为代码错了处理不了,就返回 500 码,客户端就显示 “系统忙,稍后再试”。

从这个登录的场景,就能清楚看到客户端、服务端、HTTP 方法和响应状态码是怎么一起工作的。

这些概念在测试里经常碰到,刚开始觉得陌生、搞不懂很正常。我刚入行的时候也这样,后来在实际测试里多琢磨,结合生活里的例子去想,就越来越明白。建议你平时学的时候,也多结合实际的测试场景想想,经验多了,理解就深了。遇到具体问题,再针对性地分析,就能把这些知识掌握得更牢。你学的时候要是有具体问题,随时可以跟我聊。

你可能感兴趣的:(http,网络协议,网络)