最近,小编在整理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、三次握手示意

第一次握手:客户端发送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、四次挥手示意图

第一次挥手: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博主「单车欲问边」的原创文章。

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

  1. post获取重定向的链接 python_欧美音乐网站Python爬虫项目实战

    爬虫项目实战 0x01 目标分析 最近发现一个比较好的欧美音乐下载网站,可以下载大部分高质量欧美音乐.该爬虫项目要实现自动化批量获取用户想要下载的音乐.本文从网站分析.爬虫设计.代码实现三个方面出发, ...

  2. 关于python_关于python的基础知识

    一,编程语言的类型: 1.编译型 2.解释型 3.静态语言 4.动态语言 5.强类型定义语言 6.弱类型定义语言 编译型vs解释型 编译型: 优点:编译器一般会有预编译的过程对代码进行优化.因为编译只 ...

  3. python编程基础知识体系_最新版 17 幅思维导图:Python 编程之核心知识体系

    原标题:最新版 17 幅思维导图:Python 编程之核心知识体系 导读:本文主要涵盖了 Python 编程的核心知识,展示了一系列思维导图,主要就 Python 核心基础知识进行了细致梳理.无论你是 ...

  4. Python考试基础知识

    Python考试基础知识 一.python的基本语法(包括包的导入) 二.序列类型的数据结构(重点考察列表及其基本方法) 1.前言 2.list 内容简介 2.1 list简介 2.2 list常用函 ...

  5. python爬虫——基础知识

    python爬虫--基础知识 一.网页基础知识 二.爬虫的思路 1.HTML文档(超文本) 三.ROBOTS协议 四.浏览器发送HTTP请求的过程 1.http请求过程 2.请求 五.SSL连接错误 ...

  6. python前端基础知识总结 及部分练习题

    python前端基础知识总结 知识总结 认识Python 发展历史 版本选择 python2.7是python2的最后一个版本,到2020年将不再维护 python3.6是python3最新的版本,是 ...

  7. python基础1:认识python和基础知识

    第一章 认识python和基础知识 本章目录 1.1. 认识python(了解)1.2. 第一个python程序1.3. 注释1.4. 变量以及类型1.5. 标示符和关键字1.6. 输出1.7. 输入 ...

  8. python语法基础知识总结-python语法基础知识

    一.数字类型及操作 1.整数类型 可正可负,无取值范围限制pow(x,y):计算x^y 2.浮点数类型 存在不确定尾数round(x,d):对x四舍五入,d为小数截取位数e/E:a*10^b 3.复数 ...

  9. python笔记基础-Python入门基础知识学习笔记之一

    为什么要写这篇文章? 本人做过Objective-C开发,现在在用C#做WinForm开发.近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样.故想通过本文记录 ...

最新文章

  1. “汇新杯”新兴科技+互联网创新大赛青年创客专项赛决赛
  2. Intent Flag介绍 intent.addFlags()
  3. ubuntu linux版本升级,Ubuntu 系统版本升级
  4. 连续 3 年最受欢迎:Rust,香!
  5. mysql备份 where_MySQL备份与还原
  6. 优化 Tengine HTTPS 握手时间
  7. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第2节 线程实现方式_12_创建多线程程序的第二种方式_实现Runnable接口...
  8. Python基于Snap7与PLC建立连接并读写数据
  9. android中svn合并分支,Android Studio之SVN打分支、切换分支及合并分支
  10. android百度地图注册,百度地图API key申请申请详细步骤
  11. 如何批量压缩图片?教你一键批量压缩图片的方法技巧
  12. Fisher's exact test( 费希尔精确检验)
  13. 升级glibc经验谈!!!
  14. 设计模式之工厂模式(附代码示例)
  15. mac 妙控板的手势
  16. python像数常用函数_八卦象数疗法的作用机理探讨
  17. 题目描述 假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待
  18. 2020-09-23
  19. 综合管廊设备监控及环境监测系统方案
  20. GibbsLDA++使用记录

热门文章

  1. 跨服务器 快速 导入数据表记录 Insert into SELECT
  2. 【遥感物候】C#遥感数据GIMMS 3G NDVI头文件批量生成器(几何校正)
  3. Android之替换App桌面图标
  4. Android之app作为服务器解决跨域问题
  5. Android之BaseQuickAdapter.setOnItemChildClickListener点击死人也没反应的原因
  6. linux之vim常见配置
  7. 深入 char * ,char ** ,char a[ ] ,char *a[]
  8. Android之使用IDA Pro静态分析so文件
  9. 【C语言简单说】二:第一个C语言程序详解(2)
  10. php表格怎么合并单元格格式化,table标签的结构与合并单元格的实现方法