Django框架之HTTP本质
2024-09-06 15:49:58
1.Http请求本质
浏览器(socket客户端):
2. socket.connect(ip,端口)
3. socket.send("http://www.xiaohuar.com/index.html....")
规则:http协议
GET请求:
"GET /index.html?k1=1&k2=2 Http/1.1\r\nhost:www.xiaohuar.com\r\ncontent-type:application/json\r\n\r\n"
请求头和请求体使用\r\n\r\n分割,前面头,后面是体
POST请求:
"POST /index.html?k1=1&k2=2 Http/1.1\r\nhost:www.xiaohuar.com\r\ncontent-type:application/json\r\n\r\nusername=alex&pwd=123123"
请求头和请求体使用\r\n\r\n分割,前面头,后面是体
www.xiaohuar.com/index.html?k1=1&k2=2
- 获取相应
响应头,响应体 = data.split('\r\n\r\n')
网站(socket服务端):
- 服务端运行: ip,端口
- 字符串 = server.recv()
头,体 = data.split("\r\n\r\n=")
request.POST.get() - 服务端响应:
conn.send('......')
响应头:
响应体: - 断开连接
总结:
a. Http请求中本质都是字符串
b. Http请求短连接(请求,响应断开连接)
c. 请求和响应都有:头、体
请求:
请求头
\r\n\r\n
请求体
响应:
响应头
\r\n\r\n
响应体
....
2.HTTP请求方式:GET和POST
A.GET
使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器:
/test/demo_form.jsp?name1=value1&name2=value2
HTTP默认的请求方法就是GET
没有请求体
GET请求能够被缓存
数据必须在1K之内!
GET请求数据会暴露在浏览器的地址栏中
GET请求主要用以获取数据
B.POST
使用POST方法时,查询字符串在POST信息中单独存在,和HTTP请求一起发送到服务器:
POST/test/demo_form.jsp HTTP/1.1
Host:w3schools.com
name1=value1&name2=value2
数据不会出现在地址栏中
POST请求不能被缓存下来
数据的大小没有上限
有请求体
请求体中如果存在中文,会使用URL编码!
最新文章
- RestTemplate配置
- AJAX应用优势
- MasonJS – 创建完美的砌体结构网页布局
- 用字符串模拟两个大数相加——java实现
- Mathematics:DNA Sorting(POJ 1007)
- Linux系统下设置Tomcat自启动
- maven 下载 源码和javadoc命令
- MVC 4 插件化架构简单实现实例篇
- kettle 连接Hadoop
- 16.按要求编写Java应用程序。 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。
- MVC 小案例 -- 信息管理
- OBS源码解析(2)run_program函数
- reserve的使用
- Angular记录(8)
- flask微电影系统开发中上下文处理器
- 2018-2019-2 20165305《网络攻防技术》Exp5 MSF基础应用
- ES5-ES6-ES7_严格模式
- Java 多线程 同步和异步
- 把文本数据转化为json
- kafka producer实例