简洁大气网站源码,wordpress 标签分类,wordpress能做社交,wordpress你好多莉HTTP协议简介#xff1a;HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写#xff0c;是用于万维网#xff08;www.world wide web#xff09;服务器与本地浏览器之间传输文本的传输协议。 http请求协议与相应协议HTTP协议包含浏览器发送数据到服务器需要遵循…HTTP协议简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写是用于万维网www.world wide web服务器与本地浏览器之间传输文本的传输协议。 http请求协议与相应协议HTTP协议包含浏览器发送数据到服务器需要遵循的请求协议与服务器发送数据到浏览器需要遵循的请求协议。用于HTTP协议交互的信被称为报文。请求端的HTTP报文做请求报文服务端做响应报文。HTTP协议特性1基于TCP/IPHTTP协议是基于TCP/IP协议之上的应用层协议。2基于请求-响应模式HTTP协议规定请求从客户端发出最后服务器端响应请求并返回。换句话说肯定是先从客户端开始建立通信的服务器端在没有收到请求之前不会发送响应。HTTP协议是一种无状态短链接协议。是基于TCP/IP协议的应用层协议。一次请求一次响应。 请求协议 请求格式 请求协议包括请求首行请求方式 url 请求协议版本号请求头 key:value请求体 里面放数据。 总结 a.请求协议由请求首行和请求头、请求体组成。 b.请求首行是由请求方式GET/POST HTTP协议(HTTP/1.1) 请求IP地址 c.请求首行与请求头之间用一个\r\n隔开请求头和请求体之间用两个(\r\n\r\n)隔开每个请求头之间用一个\r\n隔开 d.Cookie也放在请求头中。 如果要保持连接设置成长连接可以加一个请求头服务器客户端都要设置Connection:keep-alive 服务器和客户端都要设置 请求方式: get与post请求 在服务端的存放位置get 提交的数据会放在url(路径)之后以分割url和传输数据参数之间以相连一般服务端收到数据是在请求首行中。post提交的数据会放在HTTP的请求体当中。 小结GET请求的数据是放在请求首行中的跟在请求方式后面。 所以请求首航GET/POST 请求路径 /r/n请求地址 如果是在form表单中发送了GET请求的话所填的数据会以xx%xxxx的格式挂在URL之后的。POST请求的数据是放在请求体中的储存格式是以xxxx%xxxx的格式储存的。 响应协议 相应协议包括相应首行 协议版本HTTP://1.1 状态码200 OK状态码的原因短句\r\n响应头Content-Length: 363Content-Type: text/html。。。 响应体服务端发给客户端的数据。 响应状态码 状态码的值是当客户端向服务器端发送请求时返回的请求结果。借助状态码用户可以知道服务器端是否正常请求还是出现了状态吗200 ok ,以3位数字和原因组成。 代码演示 wsgiref的作用 WSGI(Web Server Gateway Interface):
wsgiref模块,是python基于WSGI协议开发的服务模块。最简单的Web应用就是先把HTML用文件保存好。
用一个现成的HTTP服务器软件接受用户请求从文件中读取HTML返回给客户端。但是接收HTML请求解析HTML请求发送HTML请求都比较费时所以这些都可以交给基于WSGI协议的wsgiref模块来完成。
我们只需要专注于用python生成HTML文档。 from wsgiref.simple_server import make_serverdef application(environ,start_response):start_response(200 OK,([(Content-Type,text/html)]))return [ba hrefhttp://www.baidu.combaidu/a] // 给客户端返回的数据// 接受请求的端口和IP地址默认为本机地址如果收到客户端请求执行application函数
httpd make_server(,8000,application)// 夯住等待客户端发送请求
httpd.serve_forever()如果打印environ:
ctrlf:PATH_INFO
打印请求路径pathenviron.get(PATH_INFO)print(path)
//默认是‘/’根路径。这样就可以在application函数中判断如果path‘/login/’,就给客户端返回一段login.html字符串
如果path/index/,就给他返回首页的index.html字符串.**********************定义路径*******************************
urlpatterns [(/login/,login),(/index/,index),(/reg/,reg)
]
可以定义一个列表列表中写路径与函数的对应关系走到对应的路径执行对应的函数。
函数可以定义。
// 获取用户访问的url
current_path environ.get(PATH_INFO)func None
for key,item in urlpatterns:if key current_path:func itembreak//匹配上URL执行对应函数返回相应的html页面否则返回404没有找的页面
if func:ret func()return [ret]
else:return [bh1404/h1]//优化代码可以将所有的函数放到views文件中。//url也可以放到urls文件中。//在创建一个templates文件夹单存html文件。 转载于:https://www.cnblogs.com/zsdbk/p/9206497.html