Python部分面试题整理(会持续补充...)

题目:

1.简述TCP和UDP的区别以及优缺点

2.函数装饰器有什么作用请列举出至少三个并举出一些实例

3.简答浏览器通过WSGI请求动态资源的过程

4.描述用浏览器器访问www.baidu.com的过程。

1.简述TCP和UDP的区别以及优缺点

2.函数装饰器有什么作用请列举出至少三个并举出一些实例

3.简答浏览器通过WSGI请求动态资源的过程

4.描述用浏览器器访问www.baidu.com的过程。

参考答案:

1.

UDP:

特点:UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息。

优点:UDP速度快、操作简单、需要求系统资源较少,由于通讯不需要连接,可以实现广播发送。

缺点:UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,也不用重发,不可靠。

TCP:

特点:TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时四次挥手。

优点:TCP在数据传递时,有确认、窗口、重传、拥塞控制机制,能保证数据正确性,较为可靠。

缺点:TCP相对于UDP速度慢一点、要求系统资源较多。

2.

装饰器本质上是一个python函数,它可以在让其他函数在不需要做任何代码的变动的前提下增加额外的功能,装饰器的返回值也是一个函数的对象,它经常用于有切面需求的场景,比如:参数效验、插入日志、性能测试、事务处理、缓存、权限的校检等场景。有了装饰器就可以抽离出大量的与函数功能本身无关的的雷同的代码并发并继续使用。

3.

1.发送http请求动态资源给web服务器2.web服务器收到请求后通过WSGI调用一个属性给(应用程序框架)3.(应用程序框架)通过引用WSGI调用web服务器的方法,设置返回的状态和头信息4.调用后返回,此时web服务器保存了刚刚设置的信息5.(应用程序框架)查询数据库,生成动态页面的body信息6.把生成的body信息返回给web服务器7.web服务器把数据返回给浏览器

4.

1.先要解析出baidu.com对应的ip地址

1.1.要先使用arp获取默认网关的mac地址 1.2.组织数据发送给默认网关(ip还是dns服务器的ip,但是mac地址是默认网关的mac地址) 1.3.默认网关拥有转发数据的能力,把数据转发给路由器 1.4.路由器根据自己的路由协议,来选择一个合适的较快的路径转发数据给目的网关

1.5,目的网关(dns服务器所在的网关),把数据转发给dns服务器

1.6.dns服务器查询解析出baidu.com对应的ip地址,并原路返回请求这个域名的client

2.得到了baidu.com对应的ip地址之后,会发送tcp的3次握手,进行连接

2.1 使用http协议发送请求数据个web服务器

2.2 web服务器收到数据请求之后,通过查询自己的服务器得到相应的结果,原路返回给浏览器

2.3 浏览器接收到数据之后通过浏览器自己的渲染功能来显示这个网页

2.4 浏览器关闭tcp连接,即4次挥手结束,完成整个访问过程。

你可能感兴趣的:(系统,软件解决方案)