Python web-Http
2024-08-26 13:55:27
web应用
Web应用程序一般指浏览器端/服务器端应用程序,这类应用程序一般借助谷歌,火狐等浏览器来运行。在网络编程的意义下,浏览器是一个socket客户端,服务器是一个socket服务端
import socket def handle_request(client): request_data = client.recv(1024)
print("request_data: ",request_data) client.send("HTTP/1.1 200 OK\r\nstatus: 200\r\nContent-Type:text/html\r\n\r\n".encode("utf8"))
client.send("<h1>Hello, luffycity!</h1><img src=''>".encode("utf8")) def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('localhost',8812))
sock.listen(5) while True:
print("the server is waiting for client-connection....")
connection, address = sock.accept()
handle_request(connection)
connection.close() if __name__ == '__main__': main()
http协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议 自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个 级别,协议对于发送过的请求或响应都不做持久化处理。
http协议包含由浏览器发送数据到服务器需要遵循的请求协议与服务器发送数据到浏览器需要遵循的请求协议。用于HTTP协议交互的信被为HTTP报文。请求端(客户端)的HTTP报文 做请求报文,响应端(服务器端)的 做响应报文。HTTP报文本身是由多行数据构成的字 文本。
请求格式
请求方式: get与post请求
- GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的请求体中.
- GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
- GET与POST请求在服务端获取请求数据方式不同。
响应协议
响应格式
响应状态码
最新文章
- wordpress导入模板数据
- Linux Linux程序练习十四(多进程压力测试)
- CodeForces 360E Levko and Game(Codeforces Round #210 (Div. 1))
- 用SQL语句,删除掉重复项只保留一条
- jsp:useBean标准动作
- 编写高质量代码改善C#程序的157个建议
- js中typeof的用法
- UltraEdit 和Notepad++ 使用ftp直接编辑linux上文件
- 控件编写:增强 TMEMO (一)(增加对WM_HSCROLL消息的处理)
- Ubuntu通过使用PyCharm 进行调试 Odoo 8.0 可能出现的问题
- Java comparable 和 comparator
- jacascript 事件对象event
- machine learning 之 Neural Network 3
- nginx常用配置系列-反向代理
- 浅谈Python装饰器
- .net core 2.x - 日志 - to elasticsearch - (2)
- IE9及以下input无背景时,层级混乱问题
- html(常用标签,标签分类),页面模板, CSS(css的三种引入方式),三种引入方式优先级
- MyBatis从入门到放弃二:传参
- B树学习总结
热门文章
- CSP2019 D2T2 划分 (单调队列DP)
- Kubernetes 学习13 kubernetes pv pvc configmap 和secret
- BZOJ 3328: PYXFIB 单位根反演+矩阵乘法+二项式定理
- mongoDB线上数据库连接报错记录
- 83: 模拟赛 树形dp
- 复旦高等代数 II(15级)每周一题
- establish状态,本地ip和端口连接本地ip端口可能是一样的。
- Three.js实现滚轮放大展现不同的模型
- Flask一种通用视图,增删改查RESTful API的设计
- JS 中的prototype、__proto__与constructor