一: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. php银联支付

    简介 PHP银联支付 流程 1.注册 银联 - 技术开发平台和商户服务平台 https://open.unionpay.com 注意:注册时建议使用IE浏览器,之前注册时插件老是用不了,使用IE10以 ...

  2. 手把手从python安装到setuptools、pip工具安装

    一.python安装1.基础开发库 apt-get install gccapt-get install openssl libssl-dev 2.安装数据库和开发库 apt-get install ...

  3. JavaScript day3(数据类型)

    数据类型(data type) JavaScript提供七种不同的数据类型(data types),它们是string(字符串), symbol(符号), number(数字), undefined( ...

  4. (蓝桥杯)第八届A组C/C++跳蚱蜢

    #include<iostream> #include<memory.h> #include<stack> #include<string> #incl ...

  5. js调用ro的webservice

    Enabling JavaScript Access on the Server Drop the JavaScriptHttpDispatcher component onto the server ...

  6. 【Codeforces 467C】George and Job

    [链接] 我是链接,点我呀:) [题意] 让你从1..n这n个数字中 选出来k个不相交的长度为m的区间 然后这个k个区间的和最大 求出这k个区间的和的最大值 [题解] 设dp[i][j]表示前i个数字 ...

  7. 可拖动的div——demo

    可拖动的div——demo 我们经常会遇到这样的注册界面 我们以前经常可以遇到这种需要注册的网站,如上图: 上图有一个特点,即是上述注册框其实是一个div,同时可以拖动,以下做一个简单的实例,就可以实 ...

  8. N天学习一个Linux命令之帮助命令:man

    前言 工作中每天都在使用常用的命令和非常用的命令,忘记了用法或者参数,都会bing一下,然后如此循环.一直没有真正的系统的深入的去了解命令的用法,我决定打破它.以前看到有人,每天学习一个linux命令 ...

  9. 一道Twitter面试题的解答

    前言 这道面试题是我在博客园首页的一篇文章中看到的,面试题我简单的提取出来了,文章链接:http://news.cnblogs.com/n/192014/. 在我用JS实现了我自己的想法之后,我再一次 ...

  10. 实战体验几种MySQLCluster方案

    来源:keepLearning的专栏      http://www.2cto.com/database/201504/387166.html 1.背景 MySQL的cluster方案有很多官方和第三 ...