测试同学必备的网络知识
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试同学必备的网络知识相关的知识,希望对你有一定的参考价值。
参考技术A 对于测试同学来说,计算机网络的基础知识是必不可少的,话不多说,先来整理一波高频网络面试题。包括GET,POST ,PUT,DELETE,HEAD,OPTIONS,PATCH,TRACE , CONNECT 等9种方法,常用的为前四种
1、请求效率。GET比POST的请求效率更高。GET产生一个TCP数据包,POST产生两个TCP数据包(划重点,最重要的区别)
2、安全性。Get是不安全的,在传输过程中,数据被放在请求的URL中,POST相对安全,将请求数据放在body中,但是通过抓包也是可以获取到参数的,想要真正的安全,需要用HTTPS的加密协议
3、传输数据量。GET请求数据大小受限于URL长度(1024字节),POST请求数据不受限制
4、使用场景。GET主要从服务器上获取数据,例如查看新闻功能,POST主要用于向服务器提交数据,例如用户登录功能
1XX。信息,服务器收到请求,需要请求者继续执行操作
2XX。成功,操作被成功接收并处理
3XX。重定向,需要进一步的操作以完成请求
4XX。客户端错误,请求包含语法错误或无法完成请求
5XX。服务器错误,服务器在处理请求的过程中发生了错误
200 OK :服务器成功处理了请求
301 Moved Permanently(重定向):永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302 Found:临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
304 Not Modified:未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
400 Bad Request:客户端请求有语法错误,不能被服务器所理解
401 Unauthorized:请求未经授权。例如访问未经授权的页面
403 Forbidden:服务器收到请求,但是拒绝提供服务。例如访问被禁止的网站目录
404 Not Found :请求资源不存在。例如:输入了错误的URL
500 Internal Server Error:服务器遇到错误,无法给请求提供服务
基于Token的身份验证流程:
1、客户端使用用户名uid和密码pwd去请求登录
2、服务端收到请求,将uid用一个算法例如(HMAC-SHA256算法)+秘钥(只有自己知道)去做签名sign,然后把这个签名sign和数据uid一起作为Token, 发送给客户端,服务端不保存Token
3、客户端收到 Token 以后把它存储起来,比如放在 Cookie 或者 Local Storage 里
4、客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
5、服务端收到请求,然后去验证客户端请求里面带着的 Token(即用uid按照同样的算法,将算出的结果与请求带过来的Token核对),如果验证成功,就向客户端返回请求的数据
基于Session的身份验证流程:
1、客户端使用用户名uid和密码pwd去请求登录
2、服务端收到请求,会生成一个会话标识Sessionid,即一个随机字符串,发送给客户端。每个用户登录都会生成一个,对服务器是一个巨大的开销
3、客户端收到Sessionid 以后可以把它存储起来,比如放在 Cookie 里
4、客户端每次向服务端请求资源的时候需要带着服务端返回的 Sessionid
5、服务端收到请求,然后去验证客户端请求里面带着的Sessionid,如果与保存在服务端的相同,就向客户端返回请求数据
三者的区别:
1、Cookie是客户端保存数据的一种手段,而Session是服务端保存数据的一种机制,Session保存在服务端内存中,机器重启之后就没有了,Token和Session均是一种身份认证机制
2、主要比较Session和Token机制的优缺点,Token的身份验证机制应用更普遍,优点如下:
A、无状态,可拓展
无状态:即程序需要验证每一次请求,从而辨别客户端的身份
可拓展:在服务端的内存中使用Session存储登录信息,伴随而来的是可拓展性问题,使用Token可以更好的拓展,同时节省了服务器的开销。把Token写到http请求头中,以保证Http请求的无状态。例如有多台服务器,使用负载均衡,第一次登录转发到了A,A中seesion缓存了用户的登录信息,第二次登录转发到了B,这时候就丢失了登录状态,当然这样也是有解决方案可以共享session,但token只需要所有的服务器使用相同的解密手段即可
B、支持移动设备
当客户端是原生平台时,cookie不被支持,可采取Token方式
C、跨程序调用
避免了跨域资源共享的问题
D、安全(防止csrf攻击)
签名校验机制。Session是基于Cookie进行用户识别的, Cookie如果被截获,用户就会很容易受到跨站请求伪造的攻击,一般将Token写到HTTP请求头中。
举个csrf(即跨站点请求伪造)攻击的例子:
原理:(1)同一浏览器同一域名下的cookie可共享,跨域的不能携带cookie(2)httponly,后端开启关闭,开启之后,本地js读不到cookie的字段,不开启才能读到cookie的字段
在A项目中,先登录A项目,然后在构造的js文件中,加一个跳转至A项目的链接(比如做删除操作),A项目是没有加Token校验的,从js文件直接跳转至A项目,携带cookie,可做删除操作,加了Token校验之后,就无法进行删除操作了
从上而下:
1、应用层
为操作系统或网络应用程序提供访问网络服务的接口。
包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)
2、表示层
表示层的数据转换包括数据的加密、压缩、格式转换等
3、会话层
负责建立、管理、终止进程之间的会话
4、传输层
传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题
包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议)
5、网络层
负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能
包含的主要协议:IP协议(Internet Protocol,因特网互联协议)、ICMP协议(Internet Control Message Protocol,因特网控制报文协议)、ARP协议(Address Resolution Protocol,地址解析协议)、RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)
6、数据链路层
为网络层提供可靠的数据传输
包含的主要协议:以太网协议
7、物理层
确保原始的数据可在各种物理媒体上传输
测试必备技能系列6:软件安装部署是最基本的能力!
今天,老徐再来聊聊测试必备技能
必备技能系列6
老徐简单陈述观点:
1.
对于刚入门的测试同学
或者还未入门的测试同学
那工作之余呢?
当然是学点东西
2.
学习过程中,肯定有很多软件、工具需要自己部署安装摸索
否则,门都入不了,咋学?
3.
入门级,常见有哪些需要安装的?
1)虚拟机
2)linux服务器
3)基本环境部署:mysql jdk apache 等
4)数据库客户端工具
5)bug管理工具:jira等
6)其他,看具体想学的内容
4.
安装过程遇到问题怎么办?
看提示信息
百度查
看日志
群里请教
5.
老徐测试职业发展技术交流群(339611752)
实时与老徐交流
答疑解惑
有问必答
老徐其他文章,进老徐博客首页http://www.51testing.com/?497177
以上是关于测试同学必备的网络知识的主要内容,如果未能解决你的问题,请参考以下文章
编程必备基础知识|计算机组成原理篇(06):计算机的字符与编码集