美文网首页
软件测试面试题-HTTP相关部分

软件测试面试题-HTTP相关部分

作者: 潘二丫 | 来源:发表于2019-11-06 19:41 被阅读0次

    收集了一些最近面试碰到的面试题答案,回答不妥的请大家补充或留言哦

    1.http的连接的三次握手:

    (1)首先由客户端发起一个含有同步序列号标志位的数据(SYN)给服务端,告诉它我已经准备好了,你可以用哪个序列号作为起始数据回应我

    (2)服务端收到SYN包以后,会返回一个带有确认ack包和SYN包的数据,告诉客户端,我已经收到了你的请求,你可以发送数据了;你要用 哪个序列号作为起始回应我

    (3)客户端收到后,再次发送ack确认包,告诉服务器,我收到了你的回复,现在要开始传输数据了

    2.http的4次挥手

    (1)主机A通知TCP数据已经发送完成,TCP向主机B发送一个fin标志的报文

    (2)主机B收到这个报文以后,向主机A发送一个确认包。并告诉自己的程序,对方要关闭连接

    (3)主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A送一个FIN报文段

    (4)主机A收到fin报文以后,向主机B发送一个ACk,彻底断开连接

    3.HTTP的常用的响应代码和含义

    200:请求成功,成功的意义与请求类型有关系:

        GET: 资源已经被提取,并作为响应体传回客户端

        POST: 服务器已经处理了客户端传来的数据,适合的资源作为响应体传回客户端

    301:永久重定向

    302:临时重定向

    304:未修改,可以从缓存里获取

    400:访问的页面域名不存在或者请求错误

    401:没有访问权限,需要进行身份认证

    403:资源不可用,没有权限,服务端拒绝访问

    404:服务器找不到所请求的资源,

    500:服务器内部错误,比如说请求数量过多,处理不过来

    502:网关错误

    503:服务器忙

    505:服务器不支持客户端发送的HTTP请求中所使用的HTTP协议版本.

    4.get和post的区别

    (1)传参方式的区别

    get 方法会把请求的数据以key-value的形式放在url里,以?分割url和参数,参数之间用&来连接,所以相对不安全;而post方法,则是把数据放在请求体里面,相对比较安全,但是是明文的,抓包就可以抓到,其实也不安全

    (2)发送数据大小区别

    get请求受限于浏览器和web服务器,数据大小有限

    post发送数据受限于服务端设置,比GET长得多

    (3)安全性区别

    (4)设计用途的区别

    get一般用来获取数据,不操作数据,参数少

    post一般用来修改数据,新增,修改,需要更安全,参数多

    (5)性能上

    get会把数据缓存起来,加载静态资源(如图片、js这类)都是用get请求

    post则不会缓存,相对来说慢点

    5.http和https的区别

    http:超文本传输协议,用明文传输。用80端口

    https:安全套接字层超文本传输协议,在Http的基础上加入了ssl+证书,加密传输数据,用443端口。要用到ca证书,需要一定费用

    6.cookie 和session的区别

    cookie是以文本格式存在客户端的,存储数量有限,用户看得见,不安全;

    session是存在服务端的,可以存无限多个,但是要频繁从服务器读取,比较耗服务端内存.但是比cookie更可靠。

    7.HTTP请求报文与响应报文格式

    请求报文:请求行(请求方法,URI,http版本信息),请求头,空行,请求体

    响应报文:响应行(包括http版本,状态码),响应头,空行,响应体

    8.一般请求的header里有什么字段

    Host:请求资源所在服务器

    accept:客户端可以接受的body格式,application/json 就是json格式;text/plain 纯文本格式;text/html html格式;*/* 所有格式。逗号隔开,有顺序,如果没有这个字段,默认接收所有

    accept-Encoding:指定浏览器支持的返回编码类型

    accept-Language:可接受的自然语言

    Connection:是否需要持久连接,keep-alive,如果是http1.1则默认是持久连接

    cookie:这是最重要的请求头信息之一

    user-agent:当前请求的客户端类型

    Authorization:授权信息

    Content-Length:消息正文的长度

    9.一次完整的http请求事务包含的环节

    1.客户端和服务端建立连接

    2.客户端向服务端发送请求

    3.服务器收到后给与响应信息

    4.客户端将返回的内容解析呈现,断开连接

    相关文章

      网友评论

          本文标题:软件测试面试题-HTTP相关部分

          本文链接:https://www.haomeiwen.com/subject/gopubctx.html