Django基础

本文详细介绍了HTTP协议的基本原理,包括请求与响应模型、URL结构、请求与响应格式,以及状态码含义。同时,概述了Web应用开发的概念,区分了前端与后端开发,并解释了C/S与B/S架构的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、HTTP协议

1、HTTP协议简介
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是应用层协议。HTTP是万维网的数据通信的基础。
HTTP协议中现今广泛使用的一个版本——HTTP 1.1。
2、HTTP协议概述
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。默认端口为80
3、HTTP工作原理
HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
以下是 HTTP 请求/响应的步骤:

  • 客户端连接到Web服务器
  • 发送HTTP请求:一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
  • 服务器接受请求并返回HTTP响应:一个响应由状态行、响应头部、空行和响应数据4部分组成。
  • 释放连接TCP连接。
  • 客户端浏览器解析HTML内容。、
    4、URL
    超文本传输协议(HTTP)的统一资源定位符将从因特网获取信息的五个基本元素包括在一个简单的地址中:
    (1)传送协议。
    (2)层级URL标记符号(为[//],固定不变)
    (3)访问资源需要的凭证信息(可省略)
    (4)服务器。(通常为域名,有时为IP地址)
    (5)端口号。(以数字方式表示,若为HTTP的默认值“:80”可省略)
    (6)路径。(以“/”字符区别路径中的每一个目录名称)
    (7)查询。(GET模式的请求参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题)

以http://www.baidu.com:80/news/index.html?id=250&page=1 为例, 其中:
http : 是协议;
www.baidu.com: 是服务器(域名);
80:是服务器上的网络端口号;
/news/index.html,是路径;
?id=250&page=1,是查询(携带参数)。
以?区别路径和参数,参数使用键值对方式name=’zs’&age=10,每个键值对使用&符号链接。
5、HTTP请求格式
在这里插入图片描述
提示: 回车符 \r 换行符 \n

请求首行分析:
在这里插入图片描述

请求方式: GET 和 POST 方式的区别
GET请求:地址栏访问、超链接访问都是get请求方式,get请求方式不安全,地址栏大小有限。
POST请求:内容在请求体中,数据安全,理论上内容可以无限。
只有POST请求才有请求体,
因此 POST请求 请求体中存放的是表单提交的键值对。
6、HTTP相应格式
在这里插入图片描述
响应首行(状态行)分析:
HTTP/1.1 200 OK
包含 协议–>>HTTP/1.1, 响应码(状态码)—>>200 , 状态码描述—>>OK
状态码:
200: 服务器很好的处理了客户端的请求,一切 OK
302: 重定向
例如经常去一家饭店吃饭,突然某一天饭店搬迁,只剩下一个门,门上写着新 店在左边100米处,然后你根据纸条找到新饭店; 302就相当于门上的条,当你 访问一个网站时他给你返回302你需要重新访问新的网址; 这里面发生了2次请求
304:通常表示资源文件在服务器没有更改,而浏览器端又有缓存,这时候回送 304 状体码通知浏览器拿本地的缓存显示
404:表示客户端访问的资源路径有问题或者资源问题不存在
500:表示服务器出现了 异常.

响应头部分析:
server: Apache-Coyote/1.1—>> 服务器版本号
Set-Cookie: JSESSIONID=ECA8005D1235BBB6B9CFCC338A8206FD;
Path=/03test; HttpOnly学cookie时在讲
Content-Type: text/html;charset=ISO-8859-1响应字符集,告诉浏览器以什么样的字符集解码;
3、Content-Length: 265 响应体长度
4、Date: Fri, 23 Jun 2017 13:45:01 GMT 发送日期 少8个小时;
5、Expires: -1、Cache-control:no-cache、Pragma:no-cache 三个响应头一起使用, 表示禁止浏览器缓存当前页面. 每个浏览器厂商对认识的禁止头不同因此三 个一起使用。

二、web介绍

web指的是网络,web应用开发指的是基于网络的应用程序开发。
Web应用开发分为web前端开发和web后端开发。
Web前端开发:我们可以简单的理解为开发一些网页。
Web后端开发:写一些逻辑判断程序。
当用户发出请求给我们写的程序,程序根据用户的请求做出相应的判断,然后返回给客户相应的内容。

1.软件开发架构

两个程序之间通讯的应用大致可以分为两种:
第一种是应用类程序:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用
第二种是web类程序:用户只需要浏览器即可访问程序。常见的web类应用程序
比如百度、知乎、优快云等使用浏览器访问就可以直接使用。
不管是应用类程序还是web类程序,这些应用的本质其实都是两个程序之间的通讯。
而这两个分类又对应了两个软件开发的架构~
1、客户端服务器概念
客户端:就是我们常用的程序例如qq、微信,浏览器等等。
服务器:要一直运行着给别人提供服务的机器。
例如现在我使用的CTS软件给同学们提供服务,我的电脑就是服务端(服务器)
2、C/S架构
C/S即:Client与Server ,中文意思:客户端与服务器端架构。
这里的客户端一般泛指客户端应用程序exe,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。

在这里插入图片描述
3、B/S架构
B/S即:Browser与Server,中文意思:浏览器端与服务器端架构。
只需在浏览器上通过HTTP去请求服务器端相关的资源(网页资源)。
在这里插入图片描述
执行流程:
浏览器发出一次请求给服务端,服务端通过逻辑判断把相应的数据发送给客户端。
依次执行上面的流程。

三、Web框架

1、什么是框架

1.所有的Web应用框架本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端。 一些常用框架(Django、Tornado、Flash)是对socket服务端进行的封装,使得基础功能更加完善。
2.框架来完成一些基础的工作,实现一些基础的功能,程序员在此基础上开发实现自己业务功能的代码;
3.把程序员从繁琐的重复性的代码中解脱出来,提交开发效率;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值