-
http协议 超文本传输协议
请求和响应 -
请求格式
GET / HTTP/1.1 User-Agent:.... xx:xx 空格 请求数据 (get 么有数据,post有) 示例: GET / HTTP/1.1 Host: 127.0.0.1:8001 Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 空格 (请求数据) # post POST / HTTP/1.1 Host: 127.0.0.1:8001 Connection: keep-alive Content-Length: 15 Cache-Control: max-age=0 Origin: http://127.0.0.1:8001 Upgrade-Insecure-Requests: 1 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3 Referer: http://127.0.0.1:8001/ Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 username=sdfasd
-
响应格式
HTTP/1.1 200 ok k1:v1 k2:v2 空格( ) 响应数据 代码体现; conn.send(b'HTTP/1.1 200 ok k1:v1 ') # 响应格式前部分 with open('test.html', 'rb') as f: data = f.read() conn.send(data) # 响应数据(后部分)
-
URL:
URL: https://www.cnblogs.com/clschao/articles/9230431.html 传送协议。 层级URL标记符号(为[//],固定不变) 服务器。(通常为域名,有时为IP地址) 端口号。(以数字方式表示,若为HTTP的默认值“:80”可省略) 路径。(以“/”字符区别路径中的每一个目录名称) /clschao/articles/9230431.html 查询。(GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题) https://www.cnblogs.com/clschao/articles/9230431.html?name=chao&age=18
-
请求方法
get post GET提交的数据会放在URL之后,也就是请求行里面,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456.(请求头里面那个content-type做的这种参数形式,后面讲) POST方法是把提交的数据放在HTTP包的请求数据部分中. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制. GET与POST请求在服务端获取请求数据方式不同,就是我们自己在服务端取请求数据的时候的方式不同了 常用的get请求方式:浏览器输入网址 ,a标签 ,form标签 method='get' post请求方法,一般都用来提交数据.比如用户名密码登录 其他方法:HEAD PUT DELETE TRACE OPTIONS CONNECT PATCH
-
状态码
1xx消息——请求已被服务器接收,继续处理 2xx成功——请求已成功被服务器接收、理解、并接受 3xx重定向——需要后续操作才能完成这一请求 4xx请求错误——请求含有词法错误或者无法被执行 5xx服务器错误——服务器在处理某个正确请求时发生错误
-
http协议特点
1. 基于 请求响应 的模式 2.无状态保存 3.无连接 connection:keep-alive 请求:request 响应:response
-
网页那个小图标
<link rel="icon" href="xx.ico">
-
wsgiref
from wsgiref.simple_server import make_server def application(environ,start_response): start_response('200 OK',[('Content-Type','test/html'),('k1','v1')]) print(environ) print(environ['PATH_INFO']) # 要传输的数据 a = b'xxxx' return [a] httpd=make_server('127.0.01',8080,application) print('Serving HTTP on port 8080...') httpd.serve_forever()
-
数据库的操作
import pymysql conn = pymysql.connect( host='127.0.0.1', port=3306, user='root', password='123', database='day53', charset='utf8' )