一. 网络相关知识
1.1 IP
定义:互联网协议地址
作用:它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异,能唯一标识一台计算机。
IPv4的范围:255.255.255.255
局域网ip:192.168.x.x
1.2 端口
定义:port,计算机与网络交互的出口
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门
端口可以有65536(即:2^16)个之多!0-65535
作用:对外发布服务
1.3 url地址详解
定义:每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),就是指网络地址。
格式:http://ip:port/path?param
http://:协议
ip:资源所在计算机(域名最终会解析为ip)
port:资源对外发布的端口(80:http默认端口,443:https默认端口)
path:资源在服务器的位置(tomcat下面,其实是相对webapps的路径)
二. http/https协议详解
http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
http协议是基于url地址的资源请求协议
2.1 http报文的组成
HTTP通信过程包括客户端往服务器端发送请求以及服务器端给客户端返回响应两个过程。
在此过程中,用于HTTP协议交互的信息就是http报文。
Http报文分为请求报文和返回(响应)报文。
2.1.1 请求报文
请求报文格式中分为三大部分,即请求行、请求头、请求体。
在测试中关注四要素:请求方法、URL、请求头、请求体。
2.1.2 返回报文
返回报文格式同样分为三大部分,即返回行、返回头、返回体。
测试过程中通常关注重点是返回体中的信息。
2.1.3 报文中关注的信息
请求:包括地址、请求状态、方式等
地址:参考url地址
请求状态:参考http状态码
方式:post、get、put、delete等。(主要是封包和发送方式不一样,不需要过于关注)
方法 | 描述 |
GET | 请求指定的页面信息,并返回实体主体。 |
HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
DELETE | 请求服务器删除指定的页面。 |
CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
OPTIONS | 允许客户端查看服务器的性能。 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
PATCH | 是对 PUT 方法的补充,用来对已知资源进行局部更新 。 |
参数:
需要发送给服务器的参数信息
比如登录:需要把用户名密码发送给服务器
头:
主要是传递身份信息和校验信息
分请求头和响应头
请求头:主要是用户传递的校验信息
响应头:服务器告诉用户,属于你需要保存的校验信息
返回体:
又叫响应。主要是服务器给用户返回处理后的信息。
2.2 https协议
以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
本质:
本质还是http请求,只是加入了ssl加密机制
区别:
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
HTTPS解决了信任主机的问题
测试:
只需要关注是否成功配置了证书,证书是否有效
其加密与解密不需要测试。协议本身就已经是测试通过的。
2.3 http状态码
1XX:信息状态码
状态码 | 含义 | 描述 |
100 | 继续 | 初始的请求已经接受,请客户端继续发送剩余部分 |
101 | 切换协议 | 请求这要求服务器切换协议,服务器已确定切换 |
2XX:成功状态码
状态码 | 含义 | 描述 |
200 | 成功 | 服务器已成功处理了请求 |
201 | 已创建 | 请求成功并且服务器创建了新的资源 |
202 | 已接受 | 服务器已接受请求,但尚未处理 |
203 | 非授权信息 | 服务器已成功处理请求,但返回的信息可能来自另一个来源 |
204 | 无内容 | 服务器成功处理了请求,但没有返回任何内容 |
205 | 重置内容 | 服务器处理成功,用户终端应重置文档视图 |
206 | 部分内容 | 服务器成功处理了部分GET请求 |
3XX:重定向状态码
状态码 | 含义 | 描述 |
300 | 多种选择 | 针对请求,服务器可执行多种操作 |
301 | 永久移动 | 请求的页面已永久跳转到新的url |
302 | 临时移动 | 服务器目前从不同位置的网页响应请求,但请求仍继续使用原有位置来进行以后的请求 |
303 | 查看其他位置 | 请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此代码 |
304 | 未修改 | 自从上次请求后,请求的网页未修改过 |
305 | 使用代理 | 请求者只能使用代理访问请求的网页 |
307 | 临时重定向 | 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求 |
4XX:客户端错误状态码
状态码 | 含义 | 描述 |
400 | 错误请求 | 服务器不理解请求的语法 |
401 | 未授权 | 请求要求用户的身份演验证 |
403 | 禁止 | 服务器拒绝请求 |
404 | 未找到 | 服务器找不到请求的页面,(地址填错,或者文件不存在了) |
405 | 方法禁用 | 禁用请求中指定的方法 |
406 | 不接受 | 无法使用请求的内容特性响应请求的页面 |
407 | 需要代理授权 | 请求需要代理的身份认证 |
408 | 请求超时 | 服务器等候请求时发生超时 |
409 | 冲突 | 服务器在完成请求时发生冲突 |
410 | 已删除 | 客户端请求的资源已经不存在 |
411 | 需要有效长度 | 服务器不接受不含有效长度表头字段的请求 |
412 | 未满足前提条件 | 服务器未满足请求者在请求中设置的其中一个前提条件 |
413 | 请求实体过大 | 由于请求实体过大,服务器无法处理,因此拒绝请求 |
414 | 请求url过长 | 请求的url过长,服务器无法处理 |
415 | 不支持格式 | 服务器无法处理请求中附带媒体格式 |
416 | 范围无效 | 客户端请求的范围无效 |
417 | 未满足期望 | 服务器无法满足请求表头字段要求 |
5XX:服务端错误状态码
状态码 | 含义 | 描述 |
500 | 服务器错误 | 服务器内部错误,无法完成请求(后台报错) |
501 | 尚未实施 | 服务器不具备完成请求的功能 |
502 | 错误网关 | 服务器作为网关或代理出现错误(下游服务宕机) |
503 | 服务不可用 | 服务器目前无法使用 |
504 | 网关超时 | 网关或代理服务器,未及时获取请求 |
505 | 不支持版本 | 服务器不支持请求中使用的HTTP协议版本 |