Python Web 面试题

1 Web 相关

get 和 post 区别

  • get

    • 请求数据在 URL 末尾,URL 长度有限制

    • 请求幂等,即无论请求多少次,服务器响应始终相同,这是因为 get 至少获取资源,而不修改资源

    • 可以被浏览器缓存,以便以后的请求中更快地获取相同资源

    • 可以在浏览器中输入或作为超链接点击

  • post

    • 参数在请求体中,可以传递更多数据

    • 不幂等,因为通常需要修改或创建资源

    • 无法被浏览器缓存,因为可能会修改服务器资源

    • 请求必须通过表单或 js 发送

cookies 和 session 的区别,cookie 的安全性

都是用于 web 开发中用于跟踪用户状态的技术,区别如下:

  1. 存储位置:Cookie 存储在客户端浏览器小文件中,Session 是存储在服务器端的内存或数据库中

  2. 存储内容:Cookie 中存储的是客户端的一些状态信息,例如用户的登录状态、语言偏好等;而 Session 中存储的是服务器端保存的用户状态信息,例如用户 ID、购物车内容等。

  3. 安全性:Cookie 因为存储在浏览器,容易被攻击,Session 存储在服务器端,安全性更高

  4. 有效期:Cookie 可以设置一个过期时间,当超过这个时间后,Cookie 将自动失效,而 Session 可以根据需要设置过期时间或者在用户关闭浏览器时自动过期

综上所述,Cookie 和 Session 都是用于跟踪用户状态的技术,但存储位置、存储内容、安全性和有效期等方面有所不同。在实际开发中,应该根据具体需求选择合适的技术。例如,对于需要跨多个页面和多个设备保存用户状态的应用程序,应该使用 Cookie;而对于需要保存更多用户状态信息和更高安全性要求的应用程序,应该使用 Session。

jwt token 和 session 的区别

JWT (JSON Web Token) 和 Session 都是用于认证和授权的技术,它们之间的区别如下:

  • 数据存储:Session 是在服务器端存储用户状态信息的一种方式,通常使用内存或数据库来存储 Session 数据;而 JWT 是一种无状态的认证方式,Token 数据是通过编码后存储在客户端的 Cookie 或 LocalStorage 中,服务器不会存储 Token 数据。

  • 跨域支持:由于 Session 是基于 Cookie 实现的,因此在跨域请求时需要特殊处理;而 JWT 则可以在不同域名之间共享,因为 Token 数据是存储在客户端的。

  • 扩展性:JWT 可以扩展为不同的认证方式,例如基于 OAuth 的认证方式;而 Session 的扩展性相对较弱,需要在服务器端进行实现。

  • 安全性:使用 Session 进行认证时,需要确保 Session ID 的安全,否则可能会被攻击者盗取;而使用 JWT 进行认证时,可以使用加密算法对 Token 数据进行加密,提高安全性。

  • 无状态性:由于 JWT 是无状态的,因此可以避免服务器端的负载问题,特别适合于分布式系统和微服务架构。

总的来说,JWT 适合于分布式系统和无状态应用,而 Session 适合于传统的 Web 应用。使用哪种方式,取决于具体的需求和应用场景。

docker 镜像和容器的区别

Docker是一种用于构建和管理应用程序的开源平台。在Docker中,镜像和容器是两个重要的概念。

  • Docker镜像是应用程序的打包和分发方式。它包含了应用程序所需的所有文件、配置和依赖项,可以看作是一个轻量级的虚拟机模板。Docker镜像是只读的,一旦创建就不能更改。镜像通常是由Dockerfile文件定义的,Dockerfile文件是一种文本文件,用于指定构建Docker镜像所需的所有步骤。

  • Docker容器是Docker镜像的运行实例。容器是可运行的、独立的应用程序单元,可以在任何支持Docker的环境中运行。Docker容器是基于Docker镜像创建的,并且可以动态修改和更新容器中的应用程序和配置。容器可以启动、停止、暂停、恢复和删除。

可以将Docker镜像看作是应用程序的打包和分发方式,而Docker容器是应用程序的运行实例。在使用Docker时,通常首先构建一个Docker镜像,然后在Docker镜像的基础上创建多个Docker容器。这种分离的方式使得开发、测试、部署和运维过程更加高效、可靠和可重复。

输入一个网址,在浏览器的完整过程,越详细越好

  • 解析URL(Uniform Resource Locator,统一资源定位符)。 URL是指定网络资源的地址。URL由多个部分组成,例如协议(例如http或https)、主机名(例如www.example.com)、端口号、路径和查询字符串。浏览器会解析URL以确定要访问的主机名和路径。

  • 建立TCP连接。浏览器会使用HTTP(HyperText Transfer Protocol,超文本传输协议)或HTTPS(HTTP Secure,HTTPS是一种加密的HTTP)协议与Web服务器建立TCP连接。如果使用的是HTTPS,则还需要进行SSL/TLS握手以建立安全连接。

  • 发送HTTP请求。一旦TCP连接建立,浏览器会向Web服务器发送HTTP请求。请求中包括HTTP方法(例如GET或POST)、资源路径、HTTP版本、请求标头和消息正文(对于某些请求,例如POST请求)。

  • 接收HTTP响应。Web服务器将处理HTTP请求并生成HTTP响应。响应包括HTTP状态码、响应标头和响应正文。常见的HTTP状态码包括200 OK(请求成功)、404 Not Found(资源未找到)和500 Internal Server Error(服务器内部错误)。

  • 处理响应。一旦浏览器接收到HTTP响应,它会解析响应并执行以下操作:

    • 如果响应状态码为200,则解析响应正文并显示网页内容。

    • 如果响应状态码为3xx,则浏览器将遵循响应中指定的重定向URL以获取重定向后的资源。

    • 如果响应状态码为4xx或5xx,则浏览器将显示适当的错误页面。

  • 渲染页面。浏览器会将HTML、CSS和JavaScript代码解析为可视化页面,并在屏幕上呈现出来。页面可能包括文本、图像、视频和其他媒体元素。

  • 关闭TCP连接。一旦页面渲染完毕,浏览器会关闭TCP连接。

什么是 MVC?

模型、视图、控制器:解耦数据

  • M(Model)模型:负责业务对象和数据库的交互(ORM)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃糖...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值