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

Django框架之HTTP本质的更多相关文章

  1. web 框架的本质及自定义web框架 模板渲染jinja2 mvc 和 mtv框架 Django框架的下载安装 基于Django实现的一个简单示例

    Django基础一之web框架的本质 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于Django实现的一个简单 ...

  2. Django框架01 / http协议、web框架本质

    Django框架01 / http协议.web框架本质 目录 Django框架01 / http协议.web框架本质 1.http协议 1.1 http协议简介 1.2 什么是http协议 1.3 H ...

  3. django框架介绍

    主要内容 1.        Django框架发展 2.        Django架构,MTV模式 3.        开发流程 4.        开发实例——Poll python下各种框架 一 ...

  4. Django框架全面讲解

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  5. Django 框架初步了解

    Django框架初探 1.web框架介绍 本质 socket 服务端 : 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.建立网络通信连接至少要一对端口号(s ...

  6. WEB框架-Django框架学习-预备知识

    今日份整理,终于开始整个阶段学习的后期了,今日开始学习Django的框架,加油,你是最胖的! 1.web基础知识 1.1 web应用 Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是 ...

  7. Django 框架基础

    Python web框架 本质 收发socket消息 --> 按照HTTP协议消息格式去解析消息 路径和要执行的函数的对应关系 --> 主要的业务逻辑 字符串替换 --> 模板(特殊 ...

  8. Django框架详细介绍---中间件(认证)

    一.绪论 在cookie和session的应用中,通过在视图函数内添加装饰器判断用户是否登录,把没有登录的用户请求跳转到登录页面,通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可 ...

  9. Django框架导读

    1.虚拟环境的安装 2.web应用 C/S  B/S 架构 3.http协议介绍 4.状态码 5.原生socket 6.框架演变 7.项目演变 一.虚拟环境安装 什么是虚拟环境? 1.对真实环境的一个 ...

随机推荐

  1. plsql programming 20 管理PL/SQL代码(个人感觉用不到)

    这一章的内容, 只完成了一部分, 剩下的用到再补充吧 由于依赖关系, 而编译失败, 需要重新编译. ( 所谓依赖, 是指存储过程, 函数等在运行中调用的对象, 比如table 等, 比如你删除了过程中 ...

  2. Struts2 主题和模板

    实际本章教程开始之前,让我们看看由http://struts.apache.org给出的几个定义: Term 描述 tag A small piece of code executed from wi ...

  3. kafka 集群--3个broker 3个zookeeper创建实战

    准备工作: 1. 准备3台机器,IP地址分别为:192.168.0.10,192.168.0.11,192.168.0.12 2. 下载kafka稳定版本,我的版本为:kafka_2.9.2-0.8. ...

  4. Hive查询错误:FAILED: RuntimeException Cannot make directory: hdfs://

    解决方法,关闭hadoop安全模式: hadoop dfsadmin -safemode leave

  5. android中延迟执行某个任务

    android App开发在某些情况下需要有延时功能,比如说App首页显示定格3秒,然后自动跳到登录页的情况,这就好比是一个预加载,但是这个预加载可能瞬间就完成了,撑不到3秒钟,这是就要求你做延时处理 ...

  6. Android开发:《Gradle Recipes for Android》阅读笔记1.1

    第一章1.1节 注:下面都是用android studio新建出来的默认项目配置,没有修改 1.settings.gradle记录了哪些子目录包含了它们自己的工程,例如:include':app',如 ...

  7. 40、DrawerLayout使用详情

    1.主内容视图一定要是DrawerLayout的第一个子视图 2.主内容视图宽度和高度匹配父视图,即“match_parent” 3.必须显示指定抽屉视图(如ListView)的 android:la ...

  8. 【BZOJ2320】最多重复子串 调和级数+hash

    [BZOJ2320]最多重复子串 Description 一个字符串P的重复数定义为最大的整数R,使得P可以分为R段连续且相同的子串.比方说,“ababab”的重复数为3,“ababa”的重复数为1. ...

  9. iOS蓝牙接收外设数据自动中断

    一.错误原因 在做iOS设备作为central,与蓝牙外设连接,接收蓝牙外设传输的数据时发生蓝牙中断. 在- (void)centralManager:(CBCentralManager *)cent ...

  10. docker postgres

    启动一个 Postgres 实例 docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d daocloud.i ...