post获取重定向的链接 python_【转载】python面试基础知识(四) 网络部分

最近,小编在整理python面试基础知识,看了很多博客、文章和咨询了一些大厂公司大牛。了解到,在python面试的时候,不仅要求你有项目经验,还要考试代码呢!今天,小编和大家分享一下python面试基础知识,希望帮忙大家找到理想的工作!

一、简述TCP/UDP的区别?

TCP和UDP是OSI模型中的运输层中的协议。

回答这个问题主要从一下几点来说:

1、是否面向连接

TCP面向连接,UDP面向非连接即发送数据前不需要建立链接

2、可靠性

TCP提供可靠的服务(数据传输),UDP无法保证

3、有序性

TCP有序,UDP无序

4、速度

TCP数据传输慢,UDP数据传输快

5、量级

二、能说一下你了解的端口及对应的服务?

21 FTP

22 SSH

80 HTTP

443 HTTPS

3306 MySQL

6379 Redis

三、能说几个常见HTTP状态码及其含义吗?

2xx 正常

3xx 重定向

4xx 客户端出现错误

403 权限被拒绝

404 请求资源不存在

5xx 服务器异常

503 服务器暂时处于超负载或正在进行停机维护,无法处理请求

四、简单说说TCP的三次握手和四次挥手

1、三次握手示意

af7ee68a30c754139659336cc5fef0de.png

第一次握手:客户端发送SYN包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认

第二次握手:服务器受到SYN包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包。此时服务器进入SYN_RECV状态

第三次握手:客户端受到SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器端进入ESTABLISHED状态,完成三次握手

2、四次挥手示意图

8d898639ea7e8c69354e71d57bce1bba.png

第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态

第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1,Server进入CLOSE_WAIT状态

第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态

第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手

五、为什么需要三次握手才能建立连接?

为了初始化Sequence Number的初始值

六、为什么需要四次挥手才能断开连接?

因为服务器与客户端是全双工,即发送方和接收方都需要FIN报文和ACK报文

七、为什么会有TIME_WAIT状态(2MSL)?

1、确保有足够的时间让对方收到ACK包

2、避免新旧连接混淆

八、TCP如何保证可靠性传输的?

校验和

序列号

确认应答

超时重传

连接管理

流量控制

拥塞控制

九、POST和GET请求的区别

1.GET请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连,POST把提交的数据则放置在是HTTP包的包体中。

2.GET的长度受限于url的长度,而url的长度限制是特定的浏览器和服务器设置的,理论上GET的长度可以无限长。

3.POST是没有大小限制的,HTTP协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力

4.在ASP中,服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Request.Form。

5.POST的安全性要比GET的安全性高

十、HTTP和HTTPS的区别

http的中文叫做超文本传输协议,它负责完成客户端到服务端的一系列操作,是专门用来传输注入HTML的超媒体文档等web内容的协议,

它是基于传输层的TCP协议的应用层协议

https:https是基于安全套接字的http协议,也可以理解为是http+ssl/tls(数字证书)的组合

http和https的区别:

1、HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头

2、HTTP 是不安全的,而 HTTPS 是安全的

3、HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443

4、在 OSI 网络模型中,HTTPS的加密是在传输层完成的,因为SSL是位于传输层的,TLS的前身是SSL,所以同理

5、HTTP无需认证证书,而https需要认证证书

十一、 为什么HTTPS安全

HTTPS是HTTP和SSL组合而成的,在传输层使用了SSL进行加密,保证了只有拥有私钥的才能看到信息

十二、一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?

1.在浏览器端输入网站的url地址

只有知道了一个网站的url地址才能访问到这个网站

2.浏览器查找缓存

浏览器会查找浏览器缓存,系统缓存,路由缓存,如果没有的话 继续下一步,如果有的话,直接显示

注意:浏览器会把访问过得web网站资源(html 图片)缓存起来,而判断是否使用缓存的条件有以下几种:

是否有这个网站的缓存

这个网站的缓存是否过期,具体看Cache-Control 中缓存的有效时间

跟服务器进行协商是否使用缓存,如果上次缓存的时候有Last-modified 和 Etag 字段,本次请求就会加上If-Modified-Since(上次请求资源的时间)和If-None-Match(上次资源的修改时间)

3.通过DNS获取url对应的ip地址

现在本机的host文件中查找是否有这个url对应的ip,如果没有的话,就请求DNS进行ip地址的获取

4.建立TCP链接

http在工作之前,需要客户端和服务端建立链接,这个链接的建立是通过tcp(三次握手)来完成的,因为http是比tcp更高层的协议,在网络协议的建立中,不谈底层谈高层都是在耍流氓,所以想要让http进行工作,需要tcp首先建立链接

5.浏览器向web服务器发送请求

一旦链接已经建立,浏览器就可以给web服务器发送请求命令,比如 : GET/deom/hello.jsp HTTP/1.1

6.浏览器给web服务器发送请求头信息

浏览器在发送了请求后,还要给web服务器请求头信息,比如accept-charset(浏览器端指定的字符集),最后发送一个空的请求头代表请求发送完毕,注意:如果是post提交,则会继续提交请求体

7.web服务器进行应答

应答的第一部分是http版本号,第二部分是协议的状态码,比如:HTTP/1.1 200 OK

8.web服务器发送应答头消息

web服务器给浏览器发送应答头消息,也就是关于web服务器自己的信息,最后发送一个空白行代表应答结束

9.web服务器发送数据

以应答头里面的content-type所描述的格式发送数据

10.web服务器关闭链接

web服务器向浏览器发送了应答数据之后,就要关闭tcp链接(tcp四次握手关闭链接),如果添加了connection:keep-alive,那么就还会保持链接状态

以上,就是python面试基础知识,小编还会陆续更新哦!希望大家都能找到合适的工作!

————————————————

版权声明:本文为CSDN博主「单车欲问边」的原创文章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[MyBatisPlus]MyBatisPlus简介特性

简介 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 愿景 我们的愿景是成为 MyBatis 最好的搭档,就像魂斗罗中的 1P、2P,基友搭配&…

交换机千兆和百兆对网速影响_家里明明装了百兆宽带!为啥网速还这么慢?原因竟然在这!...

现在的人,已经渐渐离不开手机和电脑,而说到手机和电脑,那就绕不过网络。随着光纤入户,网速有了大大的提升,百兆宽带也走进了寻常百姓家。可是不知道你有没有发现一个问题,为什么你明明安装的是百兆的宽带&a…

修复被破坏的 vs 工程设置

缘起 前几天打开工作项目进行编译,没想到居然报错,明明前一天编译还正常的。简单排查后,临时修复了问题。但是今天新建工程时居然还有相同的问题,是可忍熟不可忍?本文记录了排查过程,希望对各位小伙伴儿有帮…

7-4 二叉树的遍历!(简单) (25 分)

7-4 二叉树的遍历!(简单) (25 分) 二叉树作为FDS课程最核心的数据结构之一,要求每个人都掌握! 这是一道简单的二叉树问题! 我们将给出一颗二叉树,请你输出它的三种遍历,分别是先序…

[MyBatisPlus]入门案例

入门案例 创建测试数据库和表 CREATE DATABASE mybatis_plus /*!40100 DEFAULT CHARACTER SET utf8mb4 */; use mybatis_plus;CREATE TABLE user ( id bigint(20) NOT NULL COMMENT 主键ID,name varchar(30) DEFAULT NULL COMMENT 姓名, age int(11) DEFAULT NULL COMMENT 年…

vs 2019 aspx灰色_蛇纹当道,豹纹在侧:穿成动物园是2019时尚大势?

↑点击上方三联生活周刊加星标!忘记动物纹让你联想到的隐喻吧,它应该用时髦来吸引你。蛇纹当道,豹纹在侧和有嬉皮印记的植物花纹不同,动物纹让人觉得老派而华丽,所以前者有像《佩斯利公园》这样的歌来将它比喻成没有世…

TensorFlow.NET 在工业部署中的应用

前言深度学习训练的模型 如何快速地在工业应用中进行部署,这一直是工业领域深度学习技术应用的痛点。我们来看下TIOBE 2020年7月 的 TOP 10 编程语言排行榜:从上图中可以看到,Python 占据了 第 3 名,C# 在 第 5 名。在深度学习的科…

全年营业额怎么计算_门店盈亏平衡计算及案例分析 | 商品管理

以某门店为例,面积为150平方米。年租金16万元、人员工资费用15万元、水电费3万元,税费1.2万元、装修费2.9万元、交通费1.6万元、投入成本的利息及其他费用3.3万元。(进货折扣)是50%,春夏季销售额占年总销售额的40%,一件春夏季的衣…

人工智能?.NetCore一样胜任!

提起AI,大家都会先想到Python,确实Python作为一门好几十年的老语言,上一波的AI大流行使它焕发了青春。大家用Phtyon来做AI,最主要的原因无非就是编码量更少,很多数学和AI相关的Api都是现成的。但是随着ML.net的问世&am…

区域转换为二值图像_Matlab图像处理系列教程(一)

小编近期为大家带来一套全面系统的MATLAB在图像处理中的应用。灰度处理 灰度化处理就是将一幅色彩图像转化为灰度图像的过程。彩色图像分为R,G,B三个分量,分别显示出红绿蓝等各种颜色,灰度化就是使彩色的R,G&#xff0…

7.30 KubeCon2020 | 今天下午5:40 近几年最火爆的技术峰会之分享主题.NET开发者与Kuberentes...

01最负盛名的峰会自2018 年 KubeConCloudNativeCon 首次落地中国以来,CNCF 每年都会在中国举办云原生技术大会。大会每年都能吸引来自五大洲 48 个国家的开源精英和技术大咖前来参会。阿里、华为、腾讯等你所知道的每一家大厂都是KubeCon的大会赞助商。滑动查看更多…

[MyBatisPlus]测试BaseMapper的功能测试自定义功能

测试BaseMapper的功能 添加功能 /*** 实现新增用户信息*/Testpublic void testInsert(){User user new User();user.setName("张三");user.setAge(23);user.setEmail("zhangsanxx.com");int result userMapper.insert(user);System.out.println("r…

[MyBatisPlus]通用Service接口测试通用Service

通用Service接口 说明: 通用 Service CRUD 封装IService接口,进一步封装 CRUD 采用 get 查询单行 remove 删 除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆,泛型 T 为任意实体对象建议如果存在自定义通用 Service 方法的可能&#x…

程序员修神之路--晦涩难懂的CAP,是否完全正确?

微信搜一搜架构师修行之路菜菜哥,帮忙解决一个问题是不是面试又被虐了?是的呢,这次面试官问我什么是CAP?这个可就说来话长了......01PARTCAP说到CAP,首先不能不说分布式系统,前面几篇也说过,分布…

[MyBatisPlus]雪花算法

雪花算法 背景 需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量。 数据库的扩展方式主要包括:业务分库、主从复制,数据库分表。 数据库分表 将不同业务数据分散存储到不同的数据库服务器,能够支撑…

如何隐藏运行 winform 程序?

群里有个同学问了问题 如何隐藏运行 winform 程序?,提起了我的兴趣,玩玩呗?那就玩玩吧!第一版 将一个 winform 程序隐藏执行,隐藏执行的方式有很多种,第一个 demo 就用最简单的方式,…

[MyBatisPlus]常用注解_@TableName_@TableId_@TableField_@TableLogic通过全局配置配置主键生成策略

常用注解 TableName 设置实体类所对应的表名 如果全部表都有某个前缀,难道我们要通过一个一个加注解的方式来解决实体类对应表名问题吗? 我们可以通过配置文件来解决这个问题: TableId 将属性所对应的字段指定为主键 TableId的value属性 TableId的ty…

最小堆和最大堆的建立以及基本操作

前言: 堆的特性:用数组表示的完全二叉树。有序性:任一结点的关键字是其子树所有结点的最大值 (最小值) 堆的本质:就是一颗 完全二叉树 堆的数据存储: 用的是 数组 建堆时主要的操作:就是调整 对数组的元素…

字符串是单一字符的无序组合吗_Python学习笔记(八)组合数据类型

Python语言中最常用的组合数据类型有3大类, 分别是集合类型、序列类型和映射类型。集合类型是一个具体的数据类型名称,而序列类型和映射类型是一类数据类型的总称。集合类型是一个元素集合,元素之间无序,相同元素在 集合中唯一存在…

[MyBatisPlus]条件构造器wapper

wapper简介 QueryWrapper 组装查询条件 查询用户名包含a,年龄在20到30之间,邮箱信息不为null的用户信息 package com.xxxx.mybatisplus;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.xxxx.mybatisplus.mapper.Use…