软件测试面试宝典—http

这篇具有很好参考价值的文章主要介绍了软件测试面试宝典—http。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.HTTP报文由哪几部分组成?

  1. 请求报文(Request Message)由以下几部分组成:

    • 请求行(Request Line):包含请求方法、请求URL和HTTP协议版本。
    • 请求头部(Request Headers):包含一系列的键值对,用于描述请求的附加信息,如User-Agent、Content-Type等。
    • 空行(Blank Line):用于分隔请求头部和请求体。
    • 请求体(Request Body):可选部分,用于传输请求的数据,例如POST请求中的表单数据或上传的文件等。
  2. 响应报文(Response Message)由以下几部分组成:

    • 状态行(Status Line):包含HTTP协议版本、状态码和状态消息。
    • 响应头部(Response Headers):包含一系列的键值对,用于描述响应的附加信息,如Content-Type、Content-Length等。
    • 空行(Blank Line):用于分隔响应头部和响应体。
    • 响应体(Response Body):可选部分,用于传输响应的数据,例如HTML网页、JSON数据或文件等。

2.HTTP常见的请求方法有哪些?

  1. GET:获取资源。用于请求服务器发送指定资源的内容。GET请求是幂等的,即多次请求同一个资源应该返回相同的结果。

  2. POST:提交数据。用于向服务器提交数据,并请求服务器接受并处理提交的数据。POST请求不是幂等的,即多次请求同一个资源可能会导致不同的结果。

  3. PUT:更新资源。用于向服务器上传新的内容,或者替换指定资源的内容。

  4. DELETE:删除资源。用于请求服务器删除指定的资源。

  5. HEAD:获取资源的元信息。与GET方法类似,但只返回响应头部,不返回实际内容。

  6. OPTIONS:获取服务器支持的HTTP方法。用于请求服务器返回当前资源所支持的HTTP请求方法。

  7. TRACE:回显服务器收到的请求。用于请求服务器返回收到的请求,用于追踪和调试。

  8. CONNECT:建立与服务器的隧道连接。用于请求与目标资源之间建立一条双向的通信隧道。

 3.HTTP常见的状态码有哪些?

  1. 1xx(信息性状态码):表示请求已被接收,继续处理。

  2. 2xx(成功状态码):表示请求已成功被服务器接收、理解和处理。

    • 200 OK:请求成功,返回所请求的资源。
    • 201 Created:请求成功,服务器创建了新的资源。
    • 204 No Content:请求成功,但响应中不包含实体的主体部分。
  3. 3xx(重定向状态码):表示需要进一步操作以完成请求。

    • 301 Moved Permanently:请求的资源已永久移动到新的URL。
    • 302 Found:请求的资源已临时移动到新的URL。
    • 304 Not Modified:资源未修改,使用缓存的版本。
  4. 4xx(客户端错误状态码):表示服务器无法处理客户端的请求。

    • 400 Bad Request:请求无效,服务器无法理解。
    • 401 Unauthorized:请求要求身份验证。
    • 404 Not Found:请求的资源不存在。
  5. 5xx(服务器错误状态码):表示服务器在处理请求时发生了错误。

    • 500 Internal Server Error:服务器内部错误。
    • 503 Service Unavailable:服务器暂时无法处理请求,通常是由于过载或维护。

 4.HTTP常见的头部信息有哪些?

HTTP请求报文的头部信息包含以下常见字段:

  1. Host:指定请求的目标服务器的主机名和端口号。

  2. User-Agent:标识发起请求的客户端应用程序或用户代理的信息。

  3. Accept:指定客户端能够处理的响应内容类型。

  4. Accept-Language:指定客户端优先接受的自然语言。

  5. Accept-Encoding:指定客户端能够处理的内容编码方式,如gzip、deflate等。

  6. Connection:指定是否保持连接,常见的取值有"keep-alive"和"close"。

  7. Referer:指定当前请求的来源页面的URL。

  8. Content-Type:指定请求体的媒体类型,常见的取值有"application/x-www-form-urlencoded"和"multipart/form-data"等。

  9. Content-Length:指定请求体的长度。

  10. Authorization:用于身份验证,包含认证凭据。

  11. Cookie:包含服务器发送的Cookie信息。

  12. Cache-Control:指定缓存机制的指令,如"no-cache"、"max-age"等。

  13. If-Modified-Since:指定自从指定日期后,资源是否有修改。

  14. If-None-Match:指定资源的ETag值,用于比较资源是否有修改。

HTTP响应报文的头部信息包含以下常见字段:

  1. Status-Line:包含HTTP协议版本、状态码和状态消息。

  2. Server:指定响应的服务器软件名称和版本号。

  3. Date:指定响应的日期和时间。

  4. Content-Type:指定响应体的媒体类型。

  5. Content-Length:指定响应体的长度。

  6. Content-Encoding:指定响应体的内容编码方式,如gzip、deflate等。

  7. Cache-Control:指定缓存机制的指令,如"no-cache"、"max-age"等。

  8. Last-Modified:指定响应资源的最后修改时间。

  9. ETag:指定响应资源的实体标签,用于比较资源是否有修改。

  10. Location:指定重定向的目标URL。

  11. Set-Cookie:指定服务器发送的Cookie信息。

  12. Access-Control-Allow-Origin:指定响应资源允许的跨域请求源。

  13. Expires:指定响应资源的过期时间。

  14. WWW-Authenticate:用于身份验证,指定服务器要求的认证方式。

 4.HTTP的POST和GET有什么区别?

  1. 数据位置:GET请求将参数包含在URL的查询字符串中,而POST请求将参数包含在请求体中。

  2. 数据长度限制:GET请求对数据长度有限制,通常是URL的长度限制,而POST请求没有固定的长度限制。

  3. 安全性:POST请求相对于GET请求更安全,因为POST请求的参数不会被直接暴露在URL中,而是在请求体中进行传输。

  4. 缓存:GET请求默认可以被缓存,而POST请求默认不能被缓存。

  5. 数据类型:GET请求只能进行简单的数据类型传输,如文本、数字等,而POST请求可以传输任意类型的数据,如文本、文件等。

  6. 幂等性:GET请求是幂等的,即多次相同的GET请求会返回相同的结果;而POST请求不是幂等的,多次相同的POST请求可能会产生不同的结果。

  7. 使用场景:GET请求适合用于获取数据,如获取网页、图片等;POST请求适合用于提交数据,如提交表单、上传文件等。

 5.HTTP和HTTPS的异同点有哪些?

  1. 安全性:

    • HTTP是明文传输协议,数据在传输过程中不加密,容易被窃听和篡改。
    • HTTPS通过使用SSL/TLS协议对数据进行加密和身份验证,保证了传输过程中的安全性。
  2. 默认端口:

    • HTTP默认使用端口80进行通信。
    • HTTPS默认使用端口443进行通信。
  3. 证书:

    • HTTP不需要使用证书。
    • HTTPS需要使用SSL/TLS证书,用于服务器身份验证和加密通信。
  4. 连接建立过程:

    • HTTP的连接建立过程简单,只需要进行三次握手即可建立连接。
    • HTTPS的连接建立过程相对复杂,需要进行SSL/TLS握手过程,包括证书交换、密钥协商等步骤。
  5. 性能:

    • 由于HTTPS需要进行加密和解密操作,相对于HTTP来说,会增加一定的计算和传输开销,导致性能稍低。
  6. 使用场景:

    • HTTP适用于一些不需要保密性和完整性的场景,如浏览普通网页等。
    • HTTPS适用于对数据传输安全性要求较高的场景,如进行在线支付、登录等涉及敏感信息的操作。

6.cookie session和token的区别

  1. Cookie(HTTP Cookie):

    • Cookie是一种在客户端存储数据的机制,通过在浏览器中存储一小段文本信息。
    • 服务器可以通过在响应头中设置Set-Cookie字段将Cookie发送给客户端,客户端会在后续的请求中自动将Cookie包含在请求头中发送给服务器。
    • Cookie可以存储在客户端,用于跟踪用户的身份认证、会话状态等。
    • Cookie的大小有限制,每个域名下的Cookie数量也有限制。
  2. Session:

    • Session是一种在服务器端存储数据的机制,用于跟踪用户的会话状态。
    • 服务器在客户端首次请求时创建一个唯一的Session ID,并将该ID存储在Cookie中发送给客户端。
    • 客户端在后续的请求中将Session ID通过Cookie或URL参数发送给服务器,服务器通过Session ID来识别用户。
    • Session数据存储在服务器端,可以存储更多的信息,并且相对安全。
  3. Token(令牌):

    • Token是一种无状态的身份验证机制,不需要在服务器端存储用户信息。
    • 在身份验证成功后,服务器会生成一个Token,并将其发送给客户端。
    • 客户端在后续的请求中将Token包含在请求头中发送给服务器,服务器通过验证Token的有效性来识别用户。
    • Token通常使用数字签名或加密算法进行保护,确保其不被篡改。

总的来说,Cookie是在客户端存储数据的机制,Session是在服务器端存储数据的机制,而Token是一种无状态的身份验证机制。Cookie和Session需要在服务器端进行状态管理,而Token不需要在服务器端存储状态信息,因此更适合于分布式系统和无状态的API设计。

 文章来源地址https://www.toymoban.com/news/detail-824788.html

到了这里,关于软件测试面试宝典—http的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试职业发展方向规划~

    说起软件测试,很多人的印象,大概是有手就能做,「点点点」就行了。确实,大多数基础测试工程师做的都是「点点点」的工作,但是这个点呢,讲究逻辑,通过什么方式来「点点点」,能尽早暴露问题,用更少的操作覆盖更多的测试场景,从而保证产品质量,这就涉及到

    2024年02月03日
    浏览(36)
  • 软件测试简单么,发展前景如何?

    随着人工智能时代的到来,IT行业受到了越来越多人的重视。软件测试作为把控软件质量必不可少的环节,其重要性可见一斑。 软件测试可以说是算得上IT行业里相对简单的语言,但是也只是相对哈,如果想学习下去还是要看个人的学习能力的,自学一下就知道到底简单不简

    2024年02月13日
    浏览(34)
  • 【2023】软件测试的发展前景和行业现状

    软件测试 的发展前景和行业现状 软件测试的方向:功能接口性能自动化测开人生巅峰 功能测试 :曾经 互联网 缺口和软件测试缺口非常大,因此功能测试越来越多。可是2020年,疫情的冲击下,大部分面试软件测试都是会问到“自动化”。无论是培训或是自学,建议都不必止

    2024年02月06日
    浏览(47)
  • 2023软件测试的就业前景以及发展方向介绍

    2023年,随着数字化和信息技术的不断发展, 软件测试 作为保障软件质量的重要环节,在科技产业中扮演着至关重要的角色。那么,2023软件测试的就业前景如何? 软件测试的就业前景将呈现出较好的趋势,以下是对其就业前景和发展方向的介绍: 就业前景: 随着软件应用范

    2024年02月07日
    浏览(32)
  • 【美团面试】软件测试面试题

    功能测试(Function test) 0. 什么都不输入,点击提交按钮,看提示信息。(非空检查) 1.输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。(正常输入) 2.输入错误的用户名或者密码, 验证登录会失败,并且提示相应的错误信息。(错误校验) 3.登录成功后能否

    2024年02月16日
    浏览(35)
  • 软件测试面试高频30道面试题

    如果哪个测试经理在看我的文章,希望对面试者要微笑,不然面试结束,出门之后就一万个草泥马奔腾而过,其实面试者并不是希望你给他们什么,而是一种尊重,平等的谈话,不要高高在上感觉自己超牛逼一样,任何大牛都是从菜鸟起步的。当然,正在学习测试技术的人也

    2024年02月07日
    浏览(44)
  • 软件测试面试大全

     在我认为,对于测试面试以及进阶的最佳学习方法莫过于刷题+博客+书籍+视频+总结,前几者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现面试并不难,其次就是在刷题的过程中有没有去思考,刷题只是次之,这又是一个层次了,这

    2024年02月14日
    浏览(30)
  • 软件测试面试题整理

    在进行Beta测试之前和之后,通常会进行以下几种测试: 内部测试(Internal Testing) 在Beta测试之前,开发团队会进行内部测试,对软件进行全面的测试。这个阶段包括单元测试、集成测试和系统测试,以验证软件是否满足预期的功能和质量标准。 单元测试(Unit Testing):在软

    2024年01月18日
    浏览(30)
  • 软件测试面试-银行篇

    今天参加了一场比较正式的面试,汇丰银行的视频面试。在这里把面试的流程记录一下,结果还不确定,但是面试也是自我学习和成长的过程,所以记录下来大家也可以互相探讨一下。 请你做一下自我介绍?(汇丰要求英文的自我介绍) 使用什么工具来管理项目? 测试用例

    2024年02月06日
    浏览(41)
  • 软件测试-基础面试相关

    简述一下BUG的生命周期? 这个答案我在一篇博客中写过就不用多叙述 缺陷生命周期 New 提出但尚未验证的潜在缺陷。 Assigned 已分配给开发团队以解决该问题,但尚未解决。 Active 正在解决缺陷,调查正在进行中。 Test 缺陷已修复并准备好进行测试。 Verified 重新测试的缺陷和

    2023年04月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包