python_web应用雏型
python_web应用雏型
Web应用程序顾名思义,就是一种可以通过Web访问的应用程序,
Web应用的最大特点是用户只需要有网络和浏览器,不需要再安装其他软件就可顺利通过web访问到程序。
WEB应用程序一般是B/S模式(浏览器端/服务器端)。
Web应用程序首先是“应用程序”,和用标准的程序语言,如java,python等编写出来的程序没有什么本质上的不同。
而在网络编程的意义下,浏览器是一个socket客户端,服务器是一个socket服务端。
例:一个简单的web应用程序雏型
import socket
sock = socket.socket()
sock.bind(('127.0.0.1', 8800))
sock.listen(5)
while 1:
conn, addr = sock.accept()
conn.recv(1024)
conn.send(b"HTTP/1.1 200 OK\r\n status: 200\r\n Content-Type:text/html\r\n\r\n")
conn.send(b'<h1>Hello world<h1>')
conn.close()
运行代码后,做为一个web服务端,开放本地8800端口。
通过浏览器访问的效果如图:

这里要注意的是服务端发送客户端(浏览器)的byte字节信息中要包含http协议的信息,浏览器才可以正确解析出响应的信息。
如果将HTTP/1.1 200 OK这些信息给去掉,浏览器就会返回非法响应的报错信息,如图:

关于http协议在下一篇博文中再详谈。
在这篇文章中,我们理解web应用本质上也是socket服务端和客户端的交互,当然后面我们写代码不会是如此简陋麻烦,
会借助一些模块或 web框架去完成解析http协议的事情。
【end】
2018-6-21
python_web应用雏型的更多相关文章
- php发展起源
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor".注意不是“Hypertext Preproces ...
- .NET设计模式: 工厂模式
.NET设计模式: 工厂模式(转) 转自:http://www.cnblogs.com/bit-sand/archive/2008/01/25/1053207.html .NET设计模式(1): ...
- jQuery 控制表单和表格
这里总结了jQuery中对表格和表单的一些常用操作, 通过这里的实例和操作肯定对jQuery的掌握有一个新得提高, 希望大家耐心看完, 多实践. <!DOCTYPE html PUBLIC &q ...
- [Design Patterns] 3. Software Pattern Overview
When you're on the way which is unknown and dangerous, just follow your mind and steer the boat. 软件模 ...
- 【Todo】【转载】深度学习&神经网络 科普及八卦 学习笔记 & GPU & SIMD
上一篇文章提到了数据挖掘.机器学习.深度学习的区别:http://www.cnblogs.com/charlesblc/p/6159355.html 深度学习具体的内容可以看这里: 参考了这篇文章:h ...
- UML: CIM & PIM
CIM-1:定义业务流程 定义及分析业务流程(Business Process)是为了尽快理清系统范围,以便估算开发成本及时间,可不是为了要改造业务流程.系统分析员千万别误解了此步骤的目的.所以,系统 ...
- HTML -- 标签记录(随着学习不断更新)
此篇博文主要记录一些标签的常用属性 Font标签 size:字体大小 color:颜色 face:字体 <!DOCTYPE html> <html> <head> ...
- php自学笔记1
PHP(Personal Home Page的缩写,现已更名Hypertext Preprocessor“超文本预处理器”)静态web开发:html,内容一成不变动态web开发: php(Zend). ...
- 第三章 传奇的开始--Delphi(附读书笔记)
第三章 传奇的开始--Delphi "是惊世之作的Delphi让Borland重新站了起来,没有当初的Delphi,就没有今日的Borland!" "是Turbo Pas ...
随机推荐
- Go RabbitMQ (一)
RabbitMQ 简介 RabbitMQ是一个消息代理,用来负责接收和转发消息. 术语 生产者:生产者是负责发送消息的 队列:队列是RabbitMQ用来存储消息的,受主机内存和磁盘大小的限制,本质上是 ...
- 使用DAO模式开发宠物管理系统---hellokitty
宠物有狗和企鹅. 狗的属性有:编号.名称.亲密值.健康值.品种.所属主人编号. 企鹅的属性有:编号.名称.亲密值.健康值.性别.所属主人编号. 该系统中主人可以领养宠物,主人的属性有:编号.用户名.密 ...
- JAVA 对象的行为 总结
对象的行为 1. 断点调试 a:定位(设置断点) b:启动调试 c:单步执行 观察变量(F5单步执行 F6单步跳过)d:修改2 static 静态 静态成员,为类的所有对象共享 在 ...
- 理解Spring定时任务的fixedRate和fixedDelay
用过 Spring 的 @EnableScheduling 的都知道,我们用三种形式来部署计划任务,即 @Scheduled 注解的 fixedRate(fixedRateString), fixe ...
- Visual Studio最常用的快捷键
Ctrl + J:快捷提示,强迫智能感知: Ctrl + 空格键:使用 IntelliSense(智能感知)自动完成: Ctrl + Z:撤销,回退键: Ctrl + Shift + 空格:强迫显示参 ...
- 1000. A-B
1000. A-B -----> http://soj.me/1000 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Descripti ...
- SQL Server如何存储特殊字符、上标、下标
测试验证特殊符号能否存入数据库中: 其中,像一些普通单位符号比如“ ° ′"﹩ $ ﹠ & £¥ ‰ % ℃ ¤ ¢℉”可以正常录入没有问题,但是万分号“‱”之上就不可以了,录入后显 ...
- 【转】一次由过量线程引发的OOM排查
mac的话,还得进行下特殊处理:右键mat显示包内容,进入Contents->MacOS下面,会有一个MemoryAnalyzer的命令. 打开终端,进入此路径找到MemoryAnalyzer, ...
- mybatis-plus的集成与使用
Mybatis-Plus: Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 官方网站:http://m ...
- Java转换Word文件到PDF文件
使用Docx4j将Word文件转换为PDF文件: public static void convertDocxToPDF(String docxFilePath, String pdfPath) th ...