http服务测试方法

http协议入门:https://www.cnblogs.com/imyalost/p/7223493.html

HTTP服务测试方法总结

HTTP

http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式

http请求由三部分组成,分别是:请求行、消息报头、请求正文

http响应也是由三个部分组成,分别是:状态行、消息报头、响应正文

交互

1、客户端执行网路请求,从URL中解析出服务器的主机名 2、将服务器的主机名转换成服务器的IP地址 3、将端口号从URL中解析出来 4、建立一条客户端与Web服务器的TCP连接 5、客户端通过输出流向服务端发送一条HTTP请求 6、服务器从客户端回送一条HTTP响应报文 7、客户端从输入流获取报文 8、客户端解析报文、关闭连接 9、客户端将结果显示在UI上

请求方法

GET 请求获取Request-URI所标识的资源 POST 在Request-URI所标识的资源后附加新的数据 HEAD 请求获取由Request-URI所标识的资源的响应消息报头 PUT 请求服务器存储一个资源,并用Request-URI作为其标识 DELETE 请求服务器删除Request-URI所标识的资源 TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断 CONNECT 保留将来使用 OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

GET与POST区别

1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。 2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;

Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。 3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。 5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。 6、Get是Form的默认方法。

常见状态代码,状态描述,说明

100客户端必须继续发出请求 101客户端要求服务器根据请求转换HTTP协议版本200 OK //客户端请求成功

300请求的资源可在多处得到 301永久重定向,在Location响应首部的值仍为当前URL(隐式重定向) 302临时重定向,在Location响应首部的值仍为新的URL(显示重定向) 303建议客户端访问其他URL或访问方式400 Bad Request //客户端请求有语法错误,不能被服务器所理解401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden //服务器收到请求,但是拒绝提供服务 404 Not Found //请求资源不存在,eg:输入了错误的URL

500 Internal Server Error //服务器发生不可预期的错误 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

HTTP请求头各字段解释

Accept

这个头信息指定浏览器或其他客户端可以处理的 MIME 类型。值 image/png 或 image/jpeg 是最常见的两种可能值。

Accept-Charset

这个头信息指定浏览器可以用来显示信息的字符集。例如 ISO-8859-1。

Accept-Encoding

这个头信息指定浏览器知道如何处理的编码类型。值 gzip 或 compress 是最常见的两种可能值。

Accept-Language

这个头信息指定客户端的首选语言,在这种情况下,Servlet 会产生多种语言的结果。例如,en、en-us、ru 等。

Authorization

这个头信息用于客户端在访问受密码保护的网页时识别自己的身份。

Connection

这个头信息指示客户端是否可以处理持久 HTTP 连接。持久连接允许客户端或其他浏览器通过单个请求来检索多个文件。值 Keep-Alive 意味着使用了持续连接。

Content-Length

这个头信息只适用于 POST 请求,并给出 POST 数据的大小(以字节为单位)。

Cookie

这个头信息把之前发送到浏览器的 cookies 返回到服务器。

Host

这个头信息指定原始的 URL 中的主机和端口。

If-Modified-Since

这个头信息表示只有当页面在指定的日期后已更改时,客户端想要的页面。如果没有新的结果可以使用,服务器会发送一个 304 代码,表示 Not Modified 头信息。

If-Unmodified-Since

这个头信息是 If-Modified-Since 的对立面,它指定只有当文档早于指定日期时,操作才会成功。

Referer

这个头信息指示所指向的 Web 页的 URL。例如,如果您在网页 1,点击一个链接到网页 2,当浏览器请求网页 2 时,网页 1 的 URL 就会包含在 Referer 头信息中。

User-Agent

这个头信息识别发出请求的浏览器或其他客户端,并可以向不同类型的浏览器返回不同的内容。

其中的If-Modified-Since,可能解释的有点不清楚: Last-Modified 与If-Modified-Since都是用来记录页面的最后修改时间。当客户端访问页面时,服务器会将页面最后修改时间通过 Last-Modified 标识由服务器发往客户端,客户端记录修改时间,再次请求本地存在的cache页面时,客户端会通过 If-Modified-Since 头将先前服务器端发过来的最后修改时间戳发送回去,服务器端通过这个时间戳判断客户端的页面是否是最新的,如果不是最新的,则返回新的内容,如果是最新的,则 返回 304 告诉客户端其本地 cache 的页面是最新的,于是客户端就可以直接从本地加载页面了,这样在网络上传输的数据就会大大减少,同时也减轻了服务器的负担。

同步&异步

这2个概念仅存在于多线程编程中。 android中默认只有一个主线程,也叫UI线程。因为View绘制只能在这个线程内进行。 所以如果你阻塞了(某些操作使这个线程在此处运行了N秒)这个线程,这期间View绘制将不能进行,UI就会卡。所以要极力避免在UI线程进行耗时操作。 网络请求是一个典型耗时操作。 通过上面的Utils类进行网络请求只有一行代码。

1.使用同步链接,当同步连接请求数据时,当数据还未请求成功之前,用户界面做任何操作都是无效的,都是不会响应的。只有当请求数据完毕之后,才会响应用户交互,所以通常会卡死主线程

2.异步连接:当异步请求时,会有单独的子线程去请求数据,而主线程依然响应处理用户交互,所以此时用户交互得到处理,用户流畅操作,用户体验比较好,所以开发过程中最多的还是异步链接。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值