• 互联网测试开发面试题集锦(中)网络篇


    网络篇

    访问一个完整http请求会经历哪些问题

    1. 域名解析

    2. 发起TCP的3次握手

    3. 建立TCP连接后发起http请求

    4. 服务器端响应http请求,浏览器得到html代码

    5. 浏览器解析html代码,并请求html代码中的资源

    6. 浏览器对页面进行渲染呈现给用户。

    具体每一步骤可以参考https://www.cnblogs.com/YeChing/p/6337378.html

    https和http请求的区别

    • https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

    • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

    • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议

    按加密来说涉及到了非对称加密以及证书CA的处理,具体可以自行搜索了解下
    https://www.cnblogs.com/wqhwe/p/5407468.html

    tcp/ip五层协议有什么,每层的作用

    https://mp.weixin.qq.com/s/nwk_3uJd_edRD1h9YxPvzA
    可能会问你,http协议位于第几层,还有就是tcp协议位于第几层。
    http在应用层,负责数据的包装,tcp位于传输层负责数据传输
    顺便可以看看OSI七层协议
    http://www.ha97.com/3215.html

    http有哪些请求方式,get和post请求有什么区别

    • get重点在从服务器上获取资源,post重点在向服务器发送数据;

    • get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?"连接,多个请求数据间用"&"连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的;post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;

    • Get传输的数据量小,因为受URL长度限制,但效率较高,Post可以传输大量数据,所以上传文件时只能用Post方式;

    • post较get安全性较高,get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等.

    • get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码,post支持标准字符集,可以正确传递中文字符。

    http请求和http响应包含哪些内容

    请求报文包含三部分:
    a、请求行:包含请求方法、URI、HTTP版本信息

    b、请求首部字段

    c、请求内容实体
    响应报文包含三部分:

    a、状态行:包含HTTP版本、状态码、状态码的原因短语

    b、响应首部字段

    c、响应内容实体

    TCP的三次握手过程、四次挥手过程

    http://blog.csdn.net/omnispace/article/details/52701752

    还有就是问为什么是三次握手,四次挥手

    Socket编程了解么,应用在哪些地方

    可以把 WebSocket 看成是 HTTP 协议为了支持长连接所打的一个大补丁。WebSocket是HTML5下一种新的协议。它实现了浏览器与服务器全双工通信。最大不同是:
    WebSocket是一种双向通信协议。在建立连接后,WebSocket服务器端和客户端都能主动向对方发送或接收数据,就像Socket一样;
    WebSocket需要像TCP一样,先建立连接,连接成功后才能相互通信
    一个使用WebSocket应用于视频的业务思路如下:
    使用心跳维护websocket链路,探测客户端端的网红/主播是否在线
    设置负载均衡7层的proxy_read_timeout默认为60s
    设置心跳为50s,即可长期保持Websocket不断开

    http请求的状态码一般有哪些?3开头的一般是指什么

    1xx:指示信息--表示请求已接收,继续处理

    2xx:成功--表示请求已被成功接收、理解、接受

    3xx:重定向--要完成请求必须进行更进一步的操作

    4xx:客户端错误--请求有语法错误或请求无法实现

    5xx:服务器端错误--服务器未能实现合法的请求

    如果一个网址无法访问,怎么排查什么原因

    ping www.xx.com
    或者浏览器访问一般都会有返回结果502等

    如果有正在看直播的用户,反馈太卡,有可能什么原因,怎么定位问题

    如果有正在看直播的用户,反馈太卡,有可能什么原因,怎么定位问题

    自己网速慢,测速;或者内存不足,查看本机内存情况;网页缓存过多,清空;电脑中毒了;浏览器版本过低。

    WSGI和FastCGI的区别

    https://www.biaodianfu.com/cgi-fastcgi-wsgi.html

    抓包工具的使用

    如charles设置代理抓app的包等,压力测试,模拟弱网情况等,重定向,更改请求。

    http://blog.csdn.net/zhangxiang_1102/article/details/77855548

    cookie与session区别

    cookie数据存放在客户的浏览器上,session数据放在服务器上;

    cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session;
    session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE;
    单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K;
    Cookie和Session的方案虽然分别属于客户端和服务端,但是服务端的session的实现对客户端的cookie有依赖关系的,上面我讲到服务端执行session机制时候会生成session的id值,这个id值会发送给客户端,客户端每次请求都会把这个id值放到http请求的头部发送给服务端,而这个id值在客户端会保存下来,保存的容器就是cookie,因此当我们完全禁掉浏览器的cookie的时候,服务端的session也会不能正常使用

    Tcp与udp区别

    http://blog.csdn.net/li_ning_/article/details/52117463

    TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接TCP提供可靠的服务。
    TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
    TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
    每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
    TCP首部开销20字节;UDP的首部开销小,只有8个字节
    TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道(待续)

  • 相关阅读:
    nginx反向代理下载文件失败处理
    jenkins集成sonarqube代码审核
    Django中@login_required用法简介
    使用uwsgi配置django
    python的subprocess模块
    python的hashlib模块
    python的StringIO模块
    关于C#引用ExceptionPolicy.HandleException(ex, "LogAndReplace", out exceptionToReplace);
    C#DataTable 使用GroupBy方法的lamda 表达式和Linq语句写法
    MVC页面重定向'页面跳转
  • 原文地址:https://www.cnblogs.com/tom-gao/p/8819994.html
Copyright © 2020-2023  润新知