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
  1. 获取相应

    响应头,响应体 = data.split('\r\n\r\n')

网站(socket服务端):

  1. 服务端运行: ip,端口
  2. 字符串 = server.recv()

    头,体 = data.split("\r\n\r\n=")

    request.POST.get()
  3. 服务端响应:

    conn.send('......')

    响应头:

    响应体:
  4. 断开连接

总结:

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编码!

最新文章

  1. RestTemplate配置
  2. AJAX应用优势
  3. MasonJS – 创建完美的砌体结构网页布局
  4. 用字符串模拟两个大数相加——java实现
  5. Mathematics:DNA Sorting(POJ 1007)
  6. Linux系统下设置Tomcat自启动
  7. maven 下载 源码和javadoc命令
  8. MVC 4 插件化架构简单实现实例篇
  9. kettle 连接Hadoop
  10. 16.按要求编写Java应用程序。 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。
  11. MVC 小案例 -- 信息管理
  12. OBS源码解析(2)run_program函数
  13. reserve的使用
  14. Angular记录(8)
  15. flask微电影系统开发中上下文处理器
  16. 2018-2019-2 20165305《网络攻防技术》Exp5 MSF基础应用
  17. ES5-ES6-ES7_严格模式
  18. Java 多线程 同步和异步
  19. 把文本数据转化为json
  20. kafka producer实例

热门文章

  1. Spring Boot MongoDB JPA 简化开发
  2. Linux Linux常用命令二
  3. Pig系统分析(8)-Pig可扩展性
  4. 页面加载,使用ajax查询某个类别,并且给它们添加(拼接)连接
  5. 【Android 多语言切换简单实例分享】
  6. [Spring Data MongoDB]学习笔记--MapReduce
  7. RabbitMQ中Queue详细介绍
  8. grafana-----Templating
  9. junit5荟萃知识点(一):junit5的组成及安装
  10. flask信号