Django基础

一、HTTP协议(应用层协议)

1、HTTP	协议简介
	  	 http :超文本传输协议,是万维网的数据传输的基础,广泛应用的版本 :	HTTP 1.1
   	 	 HT = HyperText  
   	  	 T=	Transfer
     	 P=	Protocol

2、HTTP 协议概述

HTTP 是一个 客户端终端 和服务器端 请求和应答的标准(TCP)
	通常,客户端发起一个 HTTP 请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。
	HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息

3、HTTP 工作原理

		HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。
		HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
		HTTP 请求/响应的步骤:
			(1): 客户端连接到Web服务器(客户端和服务端建立连接)
				一个HTTP客户端(浏览器)与Web服务器的HTTP端口(默认8000)建立一个TCP套接字连接
			(2):发送HTTP请求(客户端向服务端发送请求)
				通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由 请求首行、请求头、空行(\r\n :区分请求头和请求体)、请求体 4部分组成
			(3):服务器接受请求并返回HTTP响应(服务器接受并响应)
				Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,有客户端读取。一个响应由状态行,响应头部,空行、响应数据4部分组成
			(4):释放TCP连接
				两种 connection 模式:
					a:	 close()		服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接
					b:   keep-alive()	连接会保持3秒,该段时间可以继续接收请求
			(5):客户端浏览器解析HTML内容
				客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。
				然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。

4、URL :统一资源定位符,用来确定互联网中的唯一资源。

	超文本传输协议(HTTP)的统一资源定位符将从因特网获取信息的五个基本元素包括在一个简单的地址中:  
		 以http://www.baidu.com:80/news/index.html?id=250&page=1 为例, 其中:
		(1)http/https			传送协议。 
		(2)层级URL标记符号(为[//],固定不变)
		(3)访问资源需要的凭证信息(可省略)
		(4)www.baidu.com		服务器。(通常为域名,有时为IP地址)
		(5)80					端口号。(以数字方式表示,若为HTTP的默认值“:80”可省略)
		(6)/news/index.html	路径。(以“/”字符区别路径中的每一个目录名称)
		(7)?id=250&page=1		参数查询。(GET模式的请求参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题)

5、HTTP请求格式
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

a:请求首行: 请求方法(get、post)  URL(请求路径 例如 /aa/bb/a.txt) 协议版本(HTTP/1.1)  \r\n
b:请求头分析:
		1、Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
				表示客户端可以接受的内容类型, 多个值使用;分号隔开 q=0.9 表示权重优先级,*/*表示可以接受任意类型内容;
		2、Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3		
				表示客户端可以接受的语言
		3、User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64;
				浏览器信息,例如使用的是网井的内核, windows64位系统;
		4、Accept-Encoding: gzip, deflate					支持的压缩格式
		5、Host: localhost:8888								访问地址
		6、Connection: keep-alive							保持连接 和HTTP1.1版本有关,默认保持3s
		7、Content-Type: application/x-www-form-urlencoded 	表单提交时才有可能出现,表示表单的数据类型,使用url编码,url编码 % 16位数
	8、Content-Length: 7 								post请求 请求体长度
	9、Upgrade-Insecure-Requests: 1				告诉服务器,浏览器可以处理https协议、
c:请求空行分析:   \r\n
		就是一个分隔符,用来区分请求头和请求体的;
d:请求体分析:
		只有POST请求才有请求体, 因此 POST请求 请求体中存放的是表单提交的键值对。
		name=’zs’&age=10

6、HTTP相应格式
在这里插入图片描述
在这里插入图片描述

a:响应首行(状态行)分析:
			HTTP/1.1 200 OK		包含 协议-->>HTTP/1.1, 响应码(状态码)--->>200 , 状态码描述--->>OK
			状态码:
					200: 服务器很好的处理了客户端的请求,一切 OK
					302: 重定向         客户端需要进行2次请求
					304:通常表示资源文件在服务器没有更改,而浏览器端又有缓存,这时候回送	304 状体码通知浏览器拿本地的缓存显示
					404:表示客户端访问的资源路径有问题或者资源问题不存在
					500:表示服务器出现了 异常. 
b:响应头部分析:
			1、server: Apache-Coyote/1.1--->> 服务器版本号
				Set-Cookie: JSESSIONID=ECA8005D1235BBB6B9CFCC338A8206FD; 
   		   		Path=/03test; HttpOnly学cookie时在讲
			2、Content-Type: text/html;charset=ISO-8859-1响应字符集,告诉浏览器以什么样的字符集解码;
			3、Content-Length: 265  响应体长度
			4、Date: Fri, 23 Jun 2017 13:45:01 GMT 发送日期 少8个小时;(我们是东八区,世界时间快8个小时)
			5、Expires: -1、Cache-control:no-cache、Pragma:no-cache 三个响应头一起使用,	表示禁止浏览器缓存当前页面. 每个浏览器厂商对认识的禁止头不同因此三	个一起使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Django基础教程PDF是一本详细讲解Django框架的书籍。Django是一个基于Python的高效Web应用开发框架,使用Django可以快速开发高质量、安全且易维护的Web应用程序。这本书从Django基础概念、安装、配置、模型、视图、模板、表单、认证、管理等方面,详细解释了如何使用Django进行Web应用开发。 其中,书籍的第一部分主要讲解了Django框架的基础知识,包括Django的架构、安装配置、虚拟环境、应用以及包管理等等。第二部分则详细阐述了Django的各种模型,包括Model、QuerySet以及Django ORM的操作等。第三部分则重点讲解了Django的视图,包括视图函数、URL路由以及视图的响应等等。第四部分则阐述了Django的模板系统,包括模板语言、模板渲染以及静态文件等。第五部分讲解了Django的表单系统,包括表单类的定义、视图函数的编写以及表单的提交和验证等。第六部分则深入讲解Django的认证系统、权限管理以及用户注册等内容。最后一部分则介绍了Django的管理后台、中间件、缓存、测试和部署等方面的内容。 总之,Django基础教程PDF对于想要学习并掌握Django框架的开发者来说是一本非常好的入门书籍。它详细介绍了Django框架的整个开发流程,给予开发者夯实的理论基础和实操能力,让开发者能够高效地使用Django框架进行Web应用开发。 ### 回答2: Django是一个高效的Python Web应用程序框架,它的特点是快速开发、可拓展性和丰富的功能性。对于初学者来说,学习Django框架并不是一件容易的事情,因此《Django基础教程》成为了很多开发者必备的学习资料。 《Django基础教程》详细介绍了Django框架的各种概念和操作方法,包括了模型、视图、模板、表单、路由等方面的基础知识。这本教程以实践为主,让读者通过自己手写一个简单的博客系统来获取对Django框架的全面认识。 教程的阅读需要基本的Python编程知识,因为它是使用Python语言编写的。在读完本教程后,读者可以掌握Django框架的开发流程,了解Django的中间件和模型、视图、模板的关系,掌握如何与数据库进行交互以及如何使用Django表单等。 值得一提的是,《Django基础教程》是一本中文教程,将一些比较抽象的概念解释得十分清楚易懂。而且它还针对Django 2.x 版本进行了详细介绍,非常贴近当前开发环境,可以让读者快速开发出一个简单的Web应用程序。 总而言之,《Django基础教程》是一本非常优秀、权威、全面的Django框架学习资料,它的内容详尽,范例丰富,让读者学习起来既轻松而又有深度。对于初学者来说,它是一个不容错过的学习宝典。 ### 回答3: Django是一个流行的Python Web框架,已经成为许多Web应用程序开发人员的首选。有很多教程和资源可用,其中包括Django基础教程,可作为入门学习Django的教材。 这本教程的重点是了解Django基础知识,例如Django框架的架构、模型-视图-控制器(MVC)模式、Django模型和Django视图等。它涵盖了创建新的Django项目,如何在Django项目中创建和管理应用程序,以及如何利用Django模板和表单在网页中呈现和处理数据。 该教程还提供了一些简单的应用程序示例,如博客和投票应用程序,这些教程旨在帮助读者嵌入并了解Django的工作原理。 在学习Django基础教程时,读者将学习如何编写干净、可读、可扩展和可维护的代码。这是应用程序开发中的最佳实践之一,有助于确保应用程序的可靠性。 总之,Django基础教程是入门学习Django框架的好材料,它能够为初学者提供一些基本的理解和编程技能,同时也提供了一些实用而有趣的示例,帮助学习者了解和熟悉Django框架的工作方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值