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

简介: PythonWeb开发基础(一)B/S开发和http协议推荐书籍:《HTTP权威开发指南》前端:数据的格式化呈现,python中的format函数其实就在做这件事情。

PythonWeb开发基础(一)

B/S开发和http协议

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

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

后端:纯玩数据。


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


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


http:超文本传输协议

html:超文本标记语言

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


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


http协议:


http是一个无状态协议,即不知道收到的两次请求是否来自同一个客户端。

cookie,服务端可据此判断请求是否和之前有关联。

url:uniform 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请求试试:

image.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的连接创建销毁成本高。

相关文章
|
1月前
|
Rust 前端开发 API
Tauri 开发实践 — Tauri HTTP 请求开发
本文介绍了如何在 Tauri 中发起 HTTP 请求。首先通过安装 Tauri 生态中的工具包并配置 `tauri.conf.json` 文件来允许特定域名的 HTTP 通信。接着封装了一个简单的 HTTP 客户端类,并在页面中使用该客户端实现 GET 和 POST 请求。最后提供了完整的源码地址以供参考。此功能使得桌面应用能够与远程服务器进行交互,增强了应用的实用性。
84 1
Tauri 开发实践 — Tauri HTTP 请求开发
|
1天前
|
算法 网络协议 安全
HTTP/2 协议的缺点是什么?
HTTP/2 协议的缺点是什么?
|
1天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
13 3
|
12天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
41 13
|
5天前
|
传感器 缓存 网络协议
CoAP 协议与 HTTP 协议的区别
CoAP(Constrained Application Protocol)协议是为资源受限的设备设计的轻量级协议,适用于物联网场景。相比HTTP,CoAP具有低功耗、低带宽占用和简单易实现的特点,支持多播通信和无连接的交互模式。
|
10天前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
10天前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
10天前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
|
12天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
14天前
|
网络协议 前端开发 API
HTTP 和 TCP 协议的应用场景有哪些不同
【10月更文挑战第25天】HTTP(超文本传输协议)和 TCP(传输控制协议)处于网络协议栈的不同层次,各自具有独特的功能和特点,因此它们的应用场景也存在明显的差异。