一:web应用程序
1.什么是web应用程序

是一种可以通过web访问的应用程序,最大的好处就是, 只要有浏览器,用户就能很容易访问到应用程序 2. web应用程序的优缺点
缺点:
  应用程序强调了浏览器的适用性,一些特定的功能需要用特定的操作系统或平台使用;
  网络依靠互联网远程服务端,当连接出了问题,就不能正常使用;
  许多网络应用程序不是开源的,只能依赖第三方提供的服务,不能针对用户个性化,而且大多数情况下不能离线使用,缺少了灵活性;
  完全依赖应用服务商,如果公司倒闭,用户也无法查到以前的资料;软件制造商倒闭,传统安装的软件还可以继续运行,但不在有更新和维护;
  公司可以检索任何用户行为或信息,这有可能引起安全隐私问题;
优点:
  网络应用程序不需要任何复杂的“展开”过程,所需要的只是一个适用的浏览器;
  网络应用程序通常耗费很少的用户硬盘空间,或者一点都不耗费;
  它们不需要更新,因为所有新的特性都在服务器上执行,从而自动传达到用户端;
  网络应用程序和服务器端的网络产品都很容易结合,如email功能和搜索功能;
  因为它们在网络浏览器窗口中运行,所以大多数情况下它们是通过跨平台使用的(例如Windows,Mac,Linux等等) 二. C/S和B/S架构
1. 区别

1)C/S:指的是客户端和服务端,这类程序一般都是独立运行
2)B/S:指的是浏览器端和服务端,这类程序一般都是借助浏览器来运行 web应用程序一般是B/S模式
2. B/S架构优点
在服务器上对数据进行处理,就处理的结果生成网页,以方便客户端直接下载;
这种架构采用Internet上标准的通信协议(通常是TCP/IP协议)作为客户机同服务器通信的协议。这样可以使位于Internet任意位置的人都能够正常访问服务器。对于服务器来说,通过相应的Web服务和数据库服务可以对数据进行处理。对外采用标准的通信协议,以便共享数据;
在客户机上对数据的处理被进一步简化,将浏览器作为客户端的应用程序,以实现对数据的显示。不再需要为客户端单独编写和安装其他类型的应用程序。这样,在客户端只需要安装一套内置浏览器的操作系统,直接安装一套浏览器,就可以实现服务器上数据的访问。而浏览器是计算机的标准设备
总结: 本质上浏览器是一个socket客户端,服务器是一个socket服务端
三. Python中的主流web框架 

Django flask tornado 这三个是目前最主流的几个框架,重点是Django
拓展:web2.py(这个的用途只适合用来做测试用或搭一个小的架构来使用)
A:socket
B:路由跟视图函数匹配关系
C:模板渲染(意思是,把html中的一些特殊符号替换成python中的变量或者其他) Django:如果项目要部署到服务器上面的话,可以用 uwsgi;测试阶段可以用 wsgiref;这两个本质是一个东西,wsgiref实现了这个协议的web服务器

四:http协议   *****

1. http协议简介

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议。

2. http协议的特性

  1)基于TCP/IP协议之上的应用层协议

  2)基于请求 — 响应协议:HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并返回。

  3)无状态保存:HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议 自身不对请求和响应之间的通信状态进行保存。

  4)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

3. http请求协议与响应协议

1)请求协议:

         请求首行   get  /  http/1.1\r\n(请求方式)/(请求的路径)/(协议以及版本)--- 中间用空格分隔 \r\n(换行)

      请求头部信息    key:value\r\n

              key:value\r\n

              \r\n

                请求体的内容 

  http协议包含由浏览器发送数据到服务器需要遵循的请求协议与服务器发送数据到浏览器需要遵循的请求协议。请求格式如下图:

2)响应协议:

  响应首行  http/1.1  200  OK \r\n     (请求协议)/ (请求状态码)(状态码的一个简短描述)

响应头部信息  key:value\r\n

        \r\n

   响应体 html的代码(通常情况下,也有可能是css,js等代码)

  当服务器收到浏览器的请求后,会发送响应消息给浏览器。一个完整的响应消息主要包括响应首行、响应头信息、空行和响应正文。响应格式如下图:

响应状态码:

  状态码指的是当客户端向服务器端发送请求时, 返回的请求结果,响应分别有五种

Django day01 web应用程序 , http协议的更多相关文章

  1. web应用程序+HTTP协议

    标签(空格分隔): Django web应用程序案例: 如果我们想通过自己电脑访问京东,就是一个网络编程(因为京东的服务部署在京东,通过自己的电脑浏览器传输到京东服务就是网络编程):只要涉及到网络编程 ...

  2. Django准备知识-web应用、http协议、web框架、Django简介

    一.web应用 Web应用程序是一种可以通过web访问的应用程序(web应用本质是基于socket实现的应用程序),程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件 ...

  3. django基础(web框架,http协议,django安装)

    学习Django之前我们先来看什么是OSI七层模型: 应用层 表示层       应用层(五层模型中把这三层合成一个应用层) http协议 会话层 传输层                  提供端口对 ...

  4. Django系列之web应用与http协议

    第一节:最简单的web应用程序 web应用程序指供浏览器访问的程序,通常也简称为web应用.应用程序有两种模式C/S,B/S.C/S是客户端/服务器程序.也就是说这类程序一般独立运行.而B/S就是浏览 ...

  5. 1、Django系列之web应用与http协议

    第1节:最简单的web应用程序 Web应用程序指供浏览器访问的程序,通常也简称为Web应用.应用程序有两种模式C/S.B/S.C/S是客户端/服务器端程序,也就是说这类程序一般独立运行.而B/S就是浏 ...

  6. Django 常用的 Web 应用程序工具

    Django 提供了多种开发 Web 应用程序所需的常用工具,如:缓存.日志.发送邮件.自定义认证等,更多可参考:<https://docs.djangoproject.com/zh-hans/ ...

  7. [Python] 利用Django进行Web开发系列(一)

    1 写在前面 在没有接触互联网这个行业的时候,我就一直很好奇网站是怎么构建的.现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,但是兴趣终归还是要有的,而且是需要自己动手去实践的 ...

  8. web理论知识--网页访问过程(附有Django的web项目访问流程)

    当我们闲暇之余想上网看看新闻,或者看个电影,通常的操作是:打开电脑.打开浏览器.输入网址.浏览页面信息.点击自己感兴趣的连接......那么有没有想过,这些网页从哪里来的?过程中计算机又做了什么事情了 ...

  9. Web框架本质及第一个Django实例 Web框架

    Web框架本质及第一个Django实例   Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web ...

随机推荐

  1. 常见Android安装启动失败问题

    1.INSTALL_FAILED_VERSION_DOWNGRADE版本过低2.Failed to install Funm_AND.apk on device 'QWOJLVR8KNHYA6NR': ...

  2. 自己写一个爬虫 copider

    copider 模仿scrapy的一些写法,当然我这个是单进程的,不是异步的 1.目录 copider/copider.py #coding=utf-8 ''' Created on 2015年10月 ...

  3. Android控件的继承关系

    1.View,ViewGroup >View: }1.所有高级UI组件都继承View类而实现的 }2.一个View在屏幕上占据一块矩形区域 }3. 负责渲染 }4.负责处理发生的事件 }5.设置 ...

  4. sql日期提取

    --插入数据修改不行:必须提供学号 insert into Student(生日类型) values('阳历') --把月份提取出来 显示两位数 select DATENAME(month,getda ...

  5. Python 之有道翻译数据抓取

    import requests import time def you_dao(): key = input("请输入要翻译的内容:") # key = "哈哈" ...

  6. Java中Math对象的属性与方法

    Math.sqrt() ——————>计算平方根Math.cbrt()————————>计算立方根Math.pow(a, b)——————————>计算a的b次方Math.max( ...

  7. 浅谈jQuery宽高及其应用

    [前言] 今天讲了讲jQuery各种元素宽高的获取和设置,下面简单总结下,希望对各位小伙伴有所帮助 [主体] 补充知识点: (1)width()返回结果无单位,css("width" ...

  8. How To: Multipath Linux x86-64 Release 6.4

    [root@node01 ~]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0 ...

  9. 腾讯云,搭建Java开发环境

    搭建 JAVA 开发环境 任务时间:18min ~ 20min 此实验教大家如何配置 JDK .Tomcat 和 Mysql 安装 JDK JDK 是开发Java程序必须安装的软件,我们查看一下 yu ...

  10. bupt summer training for 16 #8 ——字符串处理

    https://vjudge.net/contest/175596#overview A.设第i次出现的位置左右端点分别为Li,Ri 初始化L0 = 0,则有ans = sum{ (L[i] - L[ ...