八股背诵记录一

八股背诵(一)

第一天



第一天


1.TCP/IP模型和OSI模型?

TCP/IP 模型包括应用层、传输层、网络层和网络接口层。

  • 应用层:专注于为用户提供应用功能,手机或电脑的应用软件都是在应用层实现的。应用层的数据包会发送给传输层,传输层是为应用层提供网络支持的。
  • 传输层:使源端和目的端机器上的对等实体可以基于会话相互通信。传输层定义了两个端到端的传输协议分别是TCP和UDP。
  • 网络层:主要用于数据传输、路由及地址解析,以保障主机可以把数据发送给任何网络上的目标。数据经过网络传输,发送的顺序和到达的顺序可能会发生改变。在网络层使用IP和地址解析协议。
  • 网络接口层:定义了主机间的网络通信协议。

2.从输入URL到页面显示发生了什么?

① 输入URL并解析:输入 UR L后,浏览器会解析出协议、主机、端口、路径等信息,并构造一个HTTP请求(浏览器会根据请求头判断是否有 HTTP缓存,并根据是否有缓存决定是从服务器获取资源还是使用缓存资源)

② DNS域名解析,将域名解析成对应的IP地址:在发送HTTP请求之前,浏览器需要知道想要访问网页(URL)对应的IP地址,这就需要使用到DNS域名解析。

③ 建立TCP连接之三次握手:客户端和服务器之间进行HTTP请求和HTTP响应的过程中,需要建立起TCP连接,TCP连接需要进行三次握手。

④ 浏览器发送HTTP/HTTPS请求到web服务器

⑤ 服务器处理HTTP请求并返回HTTP报文:(HTTP响应报文和状态码也是常考的内容)服务器会接受请求并将其传递给请求处理程序并发送HTTP响应,一般响应报文包含: 请求的网页以及状态码,压缩类型,如何缓存的页面,设置的cookie;

⑥ 浏览器渲染页面。

⑦ 断开连接之TCP四次挥手:客户端和服务器之间断开连接需要进行四次挥手。

3.HTTP请求报文和响应报文是什么样子的?

用于HTTP协议交互的信息被称为HTTP报文。请求端(客户端)的HTTP报文叫做请求报文,响应端(服务器端)的叫做响应报文。HTTP报文本身是由多行数据构成的字符串文本。HTTP报文大致可分为报文首部和报文主体两块。两者由最初出现的空行来划分。通常,并不一定要有报文主体。
在这里插入图片描述

请求报文

HTTP的请求报文由四部分组成(请求行+请求头部+空行+请求体):
在这里插入图片描述
真实数据:
在这里插入图片描述
HTTP的请求报文由四部分组成(请求行+请求头部+空行+请求体):
在这里插入图片描述
请求行包括如下字段:

  • 方法(Method):指定要执行的操作,如 GET、POST、PUT、DELETE 等。
  • 资源路径(Resource Path):请求的资源的URI(统一资源标识符)。
  • HTTP版本(HTTP Version):使用的HTTP协议版本,如 HTTP/1.1 或 HTTP/2.0。

请求头的字段较多,常使用的包含以下几个:

  • Host:请求的服务器的域名。
  • Accept:客户端能够处理的媒体类型。
  • Accept-Encoding:客户端能够解码的内容编码。
  • Authorization:用于认证的凭证信息,比如token数据。
  • Content-Length:请求体的长度。
  • Content-Type:请求体的媒体类型。
  • Cookie:存储在客户端的cookie数据。
  • If-None-Match:资源的ETag值,用于缓存控制。
  • Connection:管理连接的选项,如 keep-alive。

空行是请求头部和请求主体之间的空行,用于分隔请求头部和请求主体。而请求体通常用于 POST 和 PUT 请求,包含发送给服务器的数据。

响应报文

HTTP响应报文是服务器向客户端返回的数据格式,用于传达服务器对客户端请求的处理结果以及相关的数据。一个标准的HTTP响应报文通常包含状态行、响应头、空行、响应体。
在这里插入图片描述
状态行包含HTTP版本、状态码和状态消息。例如:HTTP/1.1 200 OK

响应头部也是以键值对的形式提供的额外信息,类似于请求头部,用于告知客户端有关响应的详细信息。一些常见的响应头部字段包括:

  • Content-Type:指定响应主体的媒体类型。
  • Content-Length:指定响应主体的长度(字节数)。
  • Server:指定服务器的信息。
  • Expires: 响应的过期时间,之后内容被认为是过时的。
  • ETag: 响应体的实体标签,用于缓存和条件请求。
  • Last-Modified: 资源最后被修改的日期和时间。
  • Location:在重定向时指定新的资源位置。
  • Set-Cookie:在响应中设置Cookie。
  • Access-Control-Allow-Origin: 跨源资源共享(CORS)策略,指示哪些域可以访问资源。

空行(Empty Line)在响应头和响应体之间,表示响应头的结束。而响应体是服务端实际传输的数据,可以是文本、HTML页面、图片、视频等,也可能为空。

4.HTTP请求方式有哪些?

HTTP 请求方式共有 9 种,分别为

  • GET:获取资源
  • POST:向资源提交数据
  • PUT:类似 POST,向指定位置提交数据,服务器接收到这些数据后直接在当前位置创建新的资源
  • PATCH:类似 PUT,但是只更新资源的部分属性
  • DELETE:删除资源
  • HEAD:获取资源的元信息
  • CONNECT:建立特殊的连接隧道
  • OPTIONS:列出可对资源实行的方法
  • TRACE:追踪请求 - 响应的传输路径

5.GET和POST的请求区别?

在这里插入图片描述在这里插入图片描述

6.HTTP请求中常见的状态码有什么?

在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/44d405850ce147f09a848b38f8400999.png
1xx 类状态码属于提示信息,是协议处理中的一种中间状态,实际用到的比较少。

2xx 类状态码表示服务器成功处理了客户端的请求,也是我们最愿意看到的状态。

  • 200 OK」是最常见的成功状态码,表示一切正常。如果是非 HEAD 请求,服务器返回的响应头都会有 body 数据。

  • 204 No Content」也是常见的成功状态码,与 200 OK 基本相同,但响应头没有 body 数据。

  • 206 Partial Content」是应用于 HTTP 分块下载或断点续传,表示响应返回的 body 数据并不是资源的全部,而是其中的一部分,也是服务器处理成功的状态。

3xx 类状态码表示客户端请求的资源发生了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向。

  • 301 Moved Permanently」表示永久重定向,说明请求的资源已经不存在了,需改用新的 URL 再次访问。

  • 302 Found」表示临时重定向,说明请求的资源还在,但暂时需要用另一个 URL 来访问。

301 和 302 都会在响应头里使用字段 Location,指明后续要跳转的 URL,浏览器会自动重定向新的 URL。

  • 304 Not Modified」不具有跳转的含义,表示资源未修改,重定向已存在的缓冲文件,也称缓存重定向,也就是告诉客户端可以继续使用缓存资源,用于缓存控制。
    4xx 类状态码表示客户端发送的报文有误,服务器无法处理,也就是错误码的含义。

  • 400 Bad Request」表示客户端请求的报文有错误,但只是个笼统的错误。

  • 403 Forbidden」表示服务器禁止访问资源,并不是客户端的请求出错。

  • 404 Not Found」表示请求的资源在服务器上不存在或未找到,所以无法提供给客户端。

5xx 类状态码表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误码。

  • 500 Internal Server Error」与 400 类型,是个笼统通用的错误码,服务器发生了什么错误,我们并不知道。

  • 501 Not Implemented」表示客户端请求的功能还不支持,类似“即将开业,敬请期待”的意思。

  • 502 Bad Gateway」通常是服务器作为网关或代理时返回的错误码,表示服务器自身工作正常,访问后端服务器发生了错误。

  • 503 Service Unavailable」表示服务器当前很忙,暂时无法响应客户端,类似“网络服务正忙,请稍后重试”的意思。

7.什么是强缓存和协商缓存?

强缓存指的是只要浏览器判断缓存没有过期,则直接使用浏览器的本地缓存,决定是否使用缓存的主动性在于浏览器这边。

当我们在浏览器使用开发者工具的时候,你可能会看到过某些请求的响应码是 304,这个是告诉浏览器可以使用本地缓存的资源,通常这种通过服务端告知客户端是否可以使用缓存的方式被称为协商缓存。

详细解释见小林coding:http缓存技术

8.HTTP1.0和HTTP1.1的区别?

在这里插入图片描述

9.HTTP2.0和HTTP1.1的区别?

在这里插入图片描述

10.HTTP3.0有了解过吗?

在这里插入图片描述

11.HTTPs和HTTP有什么区别?

在这里插入图片描述

12.TCP和UDP的区别?

在这里插入图片描述

13.TCP连接如何确保可靠性?

在这里插入图片描述

14.UDP怎么实现可靠传输?

①超时重传(定时器)
②有序接受 (添加包序号)将数据包进行编号,按照包的顺序接收并存储。
③应答确认 (Seq/Ack应答机制)
④滑动窗口流量控制等机制 (滑动窗口协议)
②有序接受 (添加包序号)将数据包进行编号,按照包的顺序接收并存储。
③应答确认 (Seq/Ack应答机制)
④滑动窗口流量控制等机制 (滑动窗口协议)

Python是一种简洁而强大的编程语言,为了更好地掌握Python编程,有一些常见的知识点和技巧是需要背诵的,我们将其称为“Python八股文”。下面是这些知识点和技巧的简要概述: 1. 变量与数据类型:掌握Python的基本数据类型,例如整数、浮点数、字符串和布尔值,并学会如何声明和使用变量。 2. 条件语句与循环:了解条件语句(如if-else语句)和循环语句(如for循环和while循环)的用法,以便实现不同的控制流程。 3. 列表和字典:熟悉Python中的列表和字典数据结构,并掌握它们的基本操作方法,如访问、添加、删除和修改元素。 4. 函数与模块:理解函数和模块的概念,学会如何定义和调用函数,并了解如何导入和使用模块。 5. 文件操作:掌握读取和写入文件的基本方法,包括打开文件、读取内容、写入内容和关闭文件。 6. 异常处理:了解异常处理的概念和用法,以便在程序出现错误时进行适当的处理。 7. 面向对象编程:理解面向对象编程的基本概念,包括类、对象、属性和方法,并学会如何定义和使用类。 8. 正则表达式:掌握正则表达式的基本语法,用于处理和匹配文本数据。 以上是Python八股文的概要内容。通过背诵和实践,掌握这些知识点和技巧,将能够更加熟练地使用Python进行编程,并能够解决各种实际问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值