PythonWeb开发基础(一)B/S开发和http协议

news2024/12/24 8:49:43

文章目录

  • PythonWeb开发基础(一)
    • B/S开发和http协议
      • 请求
      • 响应
      • 连接

PythonWeb开发基础(一)

B/S开发和http协议

推荐书籍:《HTTP权威开发指南》

前端:数据的格式化呈现,python中的format函数其实就在做这件事情。

后端:纯玩数据。

CS:即Client, Server开发,基于TCP和UDP协议。

BS:即Browser, Server开发,基于HTTP协议,是一种特殊的CS开发。

  • http:超文本传输协议
  • html:超文本标记语言

传输的“数据”本身不过是一串二进制码而已,协议是为了让数据传过去对方能知道我在说什么。

html文件是纯文本,浏览器就通过文本渲染出页面。html文本中包含数据,和数据的呈现方式(标记)。

http协议:

  • http是一个无状态协议,即不知道收到的两次请求是否来自同一个客户端。
  • cookie,服务端可据此判断请求是否和之前有关联。

urluniform resource locator,统一资源定位符

  • url的结构:

    schema://host[:port#]/path/.../[;url-params][?query-string][#anchor]
    http://www.magedu.com/pathon/index.html?id=5&name=python              
    
  • 注意:url的路径只是一个“逻辑上的“路径,服务端返回给你的并不是路径指向的文件,而只需要返回内容,这个内容并不需要是从一个文件中读出来的,服务端不管怎么拼出这个内容,然后返回给你都行。

HTTP报文

分为Request(请求),和Response(响应)。

请求

请求报文的第一行为请求消息行

<请求方法> <请求路径> <协议版本>
GET / HTTP/1.1

请求方法:

  • GET:通过url请求资源
  • POST:提交数据;头后面写两个换行,再写数据。
  • HEAD:与GET类型,只是服务器不返回正文;常用于测试服务端是否正常。

测试请求的工具:

  • Postman

我在Edge浏览器上搜索Postman插件,但是只找到了Postwoman,发了个GET请求试试:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-caAuTKI9-1675421387036)(E:\Markdown用图\image-20230203184653933.png)]

URL中本身也可以传达信息(我还没太懂这句话想要表达的意思),例如

http://www.magedu.com/python/student/001

就表示要操作student中的001号,但是是要读取呢?还是修改、删除呢?这时候就看请求方法,比如方法为GET时,就要读取。

响应

第一行为

<协议版本> <状态码> <状态信息>
HTTP/1.1 200 OK

常见状态码(status code):

状态码在响应头第一行

1xx提示信息,表示请求已被成功接收,继续处理

2xx表示正常响应

  • 200正常返回了网页内容

3xx 重定向

  • 301面永久性移走,永久重定向。返回新的URL,浏览器会根据返回的 url 发起新的 request 请求

  • 302 临时重定向

  • 304资源未修改,浏览器使用本地缓存。

4xx 客户端请求错误

  • 404 Not Found,网页找不到,客户端请求的资源有错

  • 400请求语法错误

  • 401请求要求身份验证

  • 403服务器拒绝请求

5xx 服务器端错误

  • 500服务器内部错误

  • 502上游服务器错误,例如 nginx 反向代理的时候.

  • nginx,反向代理,Web开发必会(可能我暂时还用不到叭)。

连接

  • 无状态:服务器无法知道2次请求之间的联系。后面可以通过cookie、session来判断。
  • 有连接:基于TCP协议,是面向连接,需要3次握手、4次断开。
  • 短连接:一个连接打开后,会保持一段时间,因为TCP的连接创建销毁成本高。

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

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

相关文章

【MyBatis】查询语句汇总

定义一个Car类:/*** 封装汽车相关信息的 pojo类*/ public class Car {// 数据库表当中的字段应该和pojo类的属性一一对应// 建议使用包装类, 这样可以防止null的问题private Long id;private String carNum;private String brand;private Double guidePrice;private String pro…

MATLAB入门——线性规划、非线性规划、多目标规划

4-1 线性规划_哔哩哔哩_bilibili 4-2 非线性规划_哔哩哔哩_bilibili 4-3 多目标规划_哔哩哔哩_bilibili 1.线性规划 有限条件下&#xff0c;最大收益 1. 例题 例题&#xff1a;张麻子既要攻碉楼又要追替身&#xff0c;他们一伙6人&#xff0c;总共1200发子弹;每有一人攻确…

【GCC】1: RTCP RR接收端生成

m79 代码。参考bytewoods 大神的以下文章:WebRTC 基于GCC的拥塞控制(上) WebRTC 基于GCC的拥塞控制(下)虽然可以拿到估算的带宽但是rtcp 总是malformed packet个 有必要带着问题跟进下整个过程 RR报文 基于丢包率的码率控制运行在发送端,依靠RTCP RR报文进行工作。* report b…

Vue2低代码平台搭建(一)

前言 大家好,我是L丶Y,这一次,我们来聊一聊前端低代码平台的构建。近些年来,随着Saas行业的高速发展,低代码的概念也逐渐流行了起来,而低代码产品也越来越多的出现在我们的身边,像国外的Mendix,国内的宜搭、苍穹、简道云等等,想通过这篇文章与大家对于前端低代码平台…

如何使用Baklib搭建企业内部wiki

Wiki 是一个协同著作平台或称开放编辑系统。我们可以用Wiki来建设帮助系统&#xff0c;知识库系统。国内公共wiki最著名就是百度百科&#xff0c;国外则是基维百科&#xff1b;Wiki最著名的例子之一是维基百科&#xff0c;它在MediaWiki上运行&#xff0c;任何拥有Web浏览器的人…

QT opencv 学习day02 基本数据结构 point Scalar Size Rect Mat 等等

1.point &#xff08;画点&#xff09; 1. 函数原型&#xff1a; //二维的点 typedef Point_<int> Point2i; typedef Point_<int64> Point2l; typedef Point_<float> Point2f; typedef Point_<double> Point2d; typedef Point2i Point;//三维的点…

EasyExcel 实现 批量生成多sheet多Excel打包zip下载

目录说明需求场景实现1、准备一个excel模板2、把整个excel模板放在resources里面3、重点代码效果图说明 需求场景 导出学校中高年级的学生信息&#xff0c;根据班级名称分组&#xff0c;一个班级一个excel导出&#xff0c;如果多个excel需要打包成zip压缩包下载&#xff0c;一…

Linux应用编程-音频应用编程-语音转文字项目

文章目录前言Linux语音识别alsa-lib简介&#xff1a;安装alsa-lib库&#xff1a;API调用录音相关概念样本长度&#xff08;Sample&#xff09;声道数&#xff08;channel&#xff09;帧&#xff08;frame&#xff09;周期&#xff08;period&#xff09;采样率&#xff08;Samp…

springboot整合JSR303参数校验与全局异常处理

一、前言 我们在日常开发中&#xff0c;避不开的就是参数校验&#xff0c;有人说前端不是会在表单中进行校验的吗&#xff1f;在后端中&#xff0c;我们可以直接不管前端怎么样判断过滤&#xff0c;我们后端都需要进行再次判断&#xff0c;为了安全。因为前端很容易拜托&#…

[面试八股] Mysql

1、Mysql中的索引类型 &#xff08;1&#xff09;普通索引&#xff08;2&#xff09;唯一索引&#xff08;3&#xff09;主键索引&#xff08;4&#xff09;组合索引&#xff08;5&#xff09;全文索引 缺点 1、虽然索引大大提高了查询速度&#xff0c;同时却会降低更新表的速…

Mysql高级部分学习笔记(二)——事务锁

一、buffer pool 1.1 缓冲池&#xff08;buffer pool&#xff09; 简介&#xff1a;InnoDB是基于磁盘存储的&#xff0c;并将其中的数据按页的方式进行管理。因此InnoDB可视为基于磁盘的数据库系统。由于CPU的速度和磁盘IO速度的巨大鸿沟&#xff0c;需要**缓冲池(buffer poo…

windows下通过uiAutomation技术获取ui元素

最近接个需求&#xff0c;要求获取 windows 下 ui 元素&#xff0c;经一番搜索后了解到可通过工具 UISpy.exe 或 inspect.exe 来进行查看。以软件 davinci resolve 为例&#xff1a; 右侧即 UISpy 工具&#xff0c;根据内容可以看出已捕获到 davinci 界面的各属性及对应值。而 …

ItextPdf 字体显示差异分析与处理

ItextPdf 同span下字体显示差异分析与处理 在文章itext7 字体问题解答与相应源代码分析 中是分析了框架的字体设置与相关代码&#xff0c;在本篇文章里将对其生效效果进行分析和相关问题进行处理&#xff08;可持续更新&#xff0c;问题请留言&#xff09; 问题一 问题说明&…

将无风险资产与两种风险资产进行组合

目录 最优风险资产组合。 计算权重的公式。 应用。 最优风险资产组合。 曲线 AB 是两种风险资产的权衡取舍线。 A 点为资产组合中仅有风险资产 1 的情况。将 O 点与 A 点相连&#xff0c;便得到无风险资产与单个风险资产的权衡取舍线。 实际上&#xff0c;曲线 AB 上任一点…

【青训营】分布式理论初探

本文内容总结自 字节跳动青年训练营 第五届后端组 分布式理论初探 一、概述 分布式系统是计算机程序的集合&#xff0c;这些程序利用横跨多个独立计算节点的计算资源实现共同目标&#xff0c;可分为分布式计算、分布式存储、分布式数据库。 其优势是&#xff1a;去中心化、…

ESP32设备驱动-TEA5767收音机模块驱动

TEA5767收音机模块驱动 1、TEA5767介绍 TEA5767HN 是一款用于低压应用的单芯片电子调谐 FM 立体声收音机,具有完全集成的中频 (IF) 选择性和解调功能,频率范围从76—108MHZ自动数字调谐。 该收音机完全无需调整,高灵敏度,高稳定性,低噪音,收音模块。只需要最少的小型低…

Win10安装MySQL、Pycharm连接Mysql、Pycharm中运行django

目录 一、windows系统mysql相关操作 1、检查当前系统是否已安装mysql 1. 按win r 键&#xff08;调出运行窗口&#xff09; 2. 输入service.msc&#xff0c;点击[ 确定 】 3.打开服务列表 - 检查是否有mysql服务 2、windows安装mysql 1.下载mysql 2. 解压 mysql 到自己…

【面试题:三个线程轮流打印A ,B,C】

面试题&#xff1a;三个线程轮流打印A &#xff0c;B&#xff0c;C面试介绍说明思考方案代码实现Print 打印基类APrint 打印字符A 线程CPrint 打印字符C 线程PrintConstant 常量类StrRun 启动类测试结果总结面试介绍说明 当时是2022 年3月 在深圳面试的一家公司。由于疫情比较…

内网渗透(三)之基础知识-域环境的介绍和优点

系列文章 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 注&#xff1a;阅读本编文章前&#xff0c;请先阅读系列文章&#xff0c;以免造成看不懂的情况&#xff01;&#xff01; 域介绍 域的介绍 Windows域是计算机网络的一种形式&#…

DMTet 阅读笔记

介绍 主页 https://nv-tlabs.github.io/DMTet/论文pdf https://nv-tlabs.github.io/DMTet/assets/dmtet.pdf视频汇报 https://slideslive.com/38967642/deep-marching-tetrahedra-a-hybrid-representation-for-highresolution-3d-shape-synthesis?refhomepage疑似代码 在nvdi…