Django系列之web应用与http协议
第一节:最简单的web应用程序
web应用程序指供浏览器访问的程序,通常也简称为web应用。应用程序有两种模式C/S,B/S。C/S是客户端/服务器程序。也就是说这类程序一般独立运行。而B/S就是浏览器/服务器应用程序,这类应用程序一般借助浏览器来运行。web应用程序一般是BS模式。web应用程序首先是应用程序,和用便标准的程序语言,如Java,PHP,Python等编写出来的程序没有什么本质上的不同。
import socket sock=socket.socket()
sock.bind(("127.0.0.1",8800))
sock.listen(5) while 1:
print("server is working...")
conn,addr=sock.accept()
recv_data=conn.recv(1024)
conn.send(b"HTTP/1.1 200 OK\r\n\r\n<h1>welcom to Web!</h1>")
conn.close() sock.close()
第二节:http协议
2.1简介
HTTP协议是Hyper Text Transfer Protocol (超文本传输协议)的缩写,是用于万维网(WWW:world wide web)服务器与本地浏览器之间传输超文本的传输协议。HTTP是一个属于应用层的面向对象的协议,由于其简捷,快速的方式,适用于分部式超媒体信息系统。它于1990年提出,经过几年的使用于发展,得到不断地完善和扩展。HTTP协议工作于客户端-服务端架构至上。浏览器作为HTTP客户端通过URL向HTTP服务器,即web服务器发送所有请求。web服务器根据接收到的请求后,想客户端发送相应信息。

2.2 http协议特征
(1)基于TCP/IP协议
http协议是基于TCP/IP协议之上的应用层协议。
(2)基于请求-响应模式
HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定是先从客户端开始建立通信的,服务端在没有接收到请求之前不会发送响应。

(3)无状态保存
HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。
使用HTTP协议,每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务。确保协议的可伸缩性,而特意把HTTP协议设计成如此简单。
可是,随着web的不断发展,因无状态而导致业务处理变得棘手的情况增多了。比如,用户登录到一家购物网站,即使他跳转到该站的其他页面后,也需要能继续保持登录状态。针对这个实例,网站为了能够掌握是谁送出的请求,需要保存用户的状态。HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了Cookie技术。有了Cookie再用HTTP协议通信,就可以管理状态。

(4)无连接
无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
2.3 http请求协议与响应协议
http协议包含由浏览器发送数据到服务器需要遵循的请求协议与服务器发送数据到浏览器需要遵循的请求协议。用于HTTP协议交互的信为HTTP报文。请求端(客户端)的HTTP报文,做请求报文,响应段(服务器端)的响应报文。HTTP报文本身是由多行数据构成的字文本。
(1)请求协议

请求方式:get与post请求
1,GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456.POST方法是把提交的数据放在HTTP包的请求体中。
2,GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制。
(2)响应协议

响应状态码:
状态码的职是当客户端向服务器端发送请求时,返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。状态码如200 是OK,以3位数和原因组成。数字中的一位指定了响应别,后两位无分别,响应分别有5种。

Django系列之web应用与http协议的更多相关文章
- 1、Django系列之web应用与http协议
第1节:最简单的web应用程序 Web应用程序指供浏览器访问的程序,通常也简称为Web应用.应用程序有两种模式C/S.B/S.C/S是客户端/服务器端程序,也就是说这类程序一般独立运行.而B/S就是浏 ...
- Django准备知识-web应用、http协议、web框架、Django简介
一.web应用 Web应用程序是一种可以通过web访问的应用程序(web应用本质是基于socket实现的应用程序),程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件 ...
- Django 系列博客(一)
Django 系列博客(一) 前言 学习了 python 这么久,终于到了Django 框架.这可以说是 python 名气最大的web 框架了,那么从今天开始会开始从 Django框架的安装到使用一 ...
- Django 系列博客(十四)
Django 系列博客(十四) 前言 本篇博客介绍在 html 中使用 ajax 与后台进行数据交互. 什么是 ajax ajax(Asynchronous Javascript And XML)翻译 ...
- #WEB安全基础 : HTTP协议 | 文章索引
本系列讲解WEB安全所需要的HTTP协议 #WEB安全基础 : HTTP协议 | 0x0 TCP/IP四层结构 #WEB安全基础 : HTTP协议 | 0x1 TCP/IP通信 #WEB安全基础 : ...
- Django 系列博客(七)
Django 系列博客(七) 前言 本篇博客介绍 Django 中的视图层中的相关参数,HttpRequest 对象.HttpResponse 对象.JsonResponse,以及视图层的两种响应方式 ...
- Django 系列博客(二)
Django 系列博客(二) 前言 今天博客的内容为使用 Django 完成第一个 Django 页面,并进行一些简单页面的搭建和转跳. 命令行搭建 Django 项目 创建纯净虚拟环境 在上一篇博客 ...
- (1)什么是web框架和http协议
Django是一个web框架 web框架的本质:就是一个socket服务端 bs架构本质上就是cs架构(cs架构就是client和server):bs架构就是browser和server,本质上bro ...
- Django安装和web框架原理
Django安装和web框架原理 在PyCharm中安装 在cmd中输入 django-admin startproject 项目名 如果报错 不是内部或外部命令,也不是可运行的程序 需要添加环境变量 ...
随机推荐
- 【Leecode】两数相加
学习了链表结构,链表中元素的访问,对象指针的初始化与赋值,链表的创建(多个节点链接起来),进位计算的表达. 100ms /** * Definition for singly-linked list. ...
- 迅速的说清楚rpc原理
第一个问题是服务提供者进程如果被kill -9暴力杀死,不能主动调用srem命令怎么办? 这个时候服务列表中多了一个黑地址指向了不存在的服务而消费者完全不知道,这个时候服务中介就成了黑中介了.那该怎么 ...
- C# DataTable Lamda GroupBy
static void Main(string[] args) { DataTable dt = new DataTable(); dt.Columns.Add("A"); dt. ...
- python的列表综合list-comprehension示例,及两列表取补集
两个目的: 1. 了解了python的list comprehesion的用法 2. 了解了两个列表取交集和补集的方法 R语言取交集和补集更简单,直接有函数. perl 稍麻烦一些, 关键是用hash ...
- Notification之适配总结
11. android通知栏8.0系统报错误: NotificationService: No Channel found for pkg=xxx.xxx.xxx, channelId=12345, ...
- PROC IMPORT 选项
GETNAMES=YES;导入源文件字段名作为SAS数据集的字段名MIXED=NO;若某一列中包含数值型和字符型变量,将数值型按照缺省值处理.若选的是YES则是将数值型转换成字符型存储,默认为NOSC ...
- day1.接口测试(概念、Postman、SoapUI、jmeter)
一.什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑 ...
- MVC和WebApi的区别:
1.mvc 和WebApi: 区别: a.MVC是建立网站的一种框架,倾向于返回用户的页面请求:webApi倾向于返回用户数据请求 b.mvc直接继承system.mvc.controller:web ...
- CSS3之动画模块实现轮播图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 常见手机的设备分辨率、viewport和devicePixelRatio
常见手机的设备分辨率和viewport分辨率,及其1rem的大小(以vmin为单位) 常见的devicePixelRatio是1, 1.325, 1.5, 2, 2.4, 3. (具体见下面的表格, ...