Python WEB框架php
WSGI,WEB Server Gateway Interface,能够看作是一种底层协议,它规定了服务器程序和应用程序各自实现上面接口。Python的实现称为wsgirefhtml
Flask,基于WSGI,微框架python
Django,基于WSGI,开源的WEB框架git
C/S与B/S的区别github
学习web框架的目的:web
一、了解WEB框架工做机制编程
了解众多框架背后的技术,未来能够对框架作二次开发、定制改版浏览器
二、学习API封装 安全
学习框架封装的思想,并提供友好的编程接口服务器
HTTP协议:
http协议是无状态协议。
同一个客户端的两次请求之间没有任何关系,从服务器端角度来讲,它不指定这两个请求来自同一个客户端。
有链接、短链接
有链接,HTTP基于TCP协议,是面向链接的,须要3次握手、4次断开。
短链接,http 1.1以前,都是一个请求一个链接,而TCP的李连杰建立销毁成本高,对服务器有很大的影响。因此,从http 1.1开始,支持keep-alive,默认也开启,一个链接建立后,会保持一段时间(可设置),浏览器再访问该服务器就使用这个TCP链接,减轻了服务器压力,提升了效率。
Cookie:
一个、或多个键值对信息。身份标识
通常状况下,浏览器发起第一次请求时,服务器回复给浏览器一份Cookie信息,并在服务端存储一份,下次浏览器再访问该服务器时,浏览器会带上服务器设置的Cookie,服务器收到以后,检查发现这个Cookie标识以前曾经访问过,就会将服务器上有效保存的一些数据传给浏览器。
Cookie通常都有过时时间。
客户端能够本身设置Cookie信息,甚至是其余人的Cookie(只要你能获得),这样就能以别人的身份登录服务器(Cookie没过时状况下)。
因此Cookie必须安全保管,不能够泄露。
URL:
uniform resource locator 统一资源定位符,每个连接指向一个资源供客户端访问。
schema://host[:port#]/path/.../[;url-params][?query-string][#anchor]
schema 协议、模式:
http、ftp、https、file、mailto等等。
host:port
host能够是ip地址也能够是域名,port默认是80,用冒号相连。
/path/to/resource
path 为webserver上的一个同名资源路径,或者一个alias目录别名。
resource 资源名
index.php?key1=value1&key2=value2
query string,查询字符串,表示向index.php资源获取指定字符串,?号分割,后面key=value格式,多个kv对用&分割。
HTTP消息:
消息分为Request、Resphone。
Request:浏览器向服务器发起的请求
Resphone:服务器对客户端请求的响应。
请求和响应消息都是由请求行、Header消息报头、Body消息正文组成。
请求行:
https://github.com/ysrc/xunfeng/blob/master/vulscan/vuldb/iis_webdav_rce.py
Header消息报头:
GET /ysrc/xunfeng/blob/master/vulscan/vuldb/iis_webdav_rce.py HTTP/1.1 Host: github.com Connection: keep-alive Cache-Control: max-age=0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36 Upgrade-Insecure-Requests: 1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Body消息正文:
一般出如今POST请求方法中:
username=admin&password=123456