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

相关文章
|
3月前
|
缓存 监控 搜索推荐
301重定向实现原理全面解析:从HTTP协议到SEO最佳实践
301重定向是HTTP协议中的永久重定向状态码,用于告知客户端请求的资源已永久移至新URL。它在SEO中具有重要作用,能传递页面权重、更新索引并提升用户体验。本文详解其工作原理、服务器配置方法(如Apache、Nginx)、对搜索引擎的影响及最佳实践,帮助实现网站平稳迁移与优化。
471 68
|
2月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
378 2
|
4月前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
257 61
|
3月前
|
存储 网络协议 安全
HTTP 协议及会话跟踪机制详解
本文详解了 HTTP 协议的核心知识,包括其定义(超文本传输协议,基于 TCP,规定客户端与服务器通信规则)及与 HTTPS 的区别(安全性、端口、资源消耗)。 介绍了 GET 与 POST 请求的差异(参数限制、安全性、应用场景),以及 Restful 风格(通过 URL 定位资源,请求方式决定操作)。列举了常见 HTTP 状态码(如 200 成功、404 资源未找到),对比了转发与重定向的区别(服务器端一次请求 vs 客户端两次请求)。 还阐述了会话跟踪机制:Cookie 基于客户端存储,通过Set-Cookie和Cookie头实现,安全性较低;Session 基于服务端存储,依赖 C
248 1
|
4月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
216 18
|
2月前
|
缓存 网络协议 UED
深度解析HTTP协议从版本0.9至3.0的演进和特性。
总的来说,HTTP的演进是互联网技术不断发展和需求日益增长的结果。每一次重要更新都旨在优化性能,增进用户体验,适应新的应用场景,而且保证了向后兼容,让互联网的基础架构得以稳定发展。随着网络技术继续进步,我们可以预期HTTP协议在未来还会继续演化。
349 0
|
3月前
|
XML 安全 网络架构
深度对比SOAP与HTTP协议:详细理解它们的工作原理和差异
在设计服务和系统交云策略时,考虑到上述差异是至关重要的。SOAP适合需要高安全性、可靠性和事务支持的企业级应用。而HTTP适合Web界面浏览、RESTful服务和需要快速响应的轻量级通信。根据具体需求和上下文,开发者可以选择合适的协议以实现最优的系统性能和用户体验。
327 0
|
4月前
|
缓存
HTTP协议深度剖析:常见请求头信息讲解
这就是HTTP请求头背后的工作原理,希望通过比作“邮差”和“标签”,可以让你对这个繁琐技术更有感触,更得心应手。尽管这些信息可能很琐碎,但了解了它们的含义和工作方式,就等于揭开了HTTP协议神秘的面纱,掌控了网络交流的核心。你还等什么,赶快动手尝试一下吧!
140 17
|
3月前
HTTP协议中常见的状态码 ?
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类。常见状态码包括:101(切换协议)、200(请求成功)、302(重定向)、401(未认证)、404(资源未找到)、500(服务器错误)。
297 0

热门文章

最新文章