服务器端网站编程(Django)

news/2024/5/10 3:18:08/文章来源:https://blog.csdn.net/u013693763/article/details/106682732

服务器端网站编程
Web浏览器使用超文本传输​​协议(HTTP)与Web服务器进行通信。当您单击网页上的链接,提交表单或运行搜索时,HTTP请求将从浏览器发送到目标服务器。

该请求包括标识受影响资源的URL,定义所需动作(例如获取,删除或发布资源)的方法,并且可能包括以URL参数编码的其他信息(通过查询发送的字段/值对)字符串),POST数据(通过HTTP POST方法发送的数据)或关联的Cookie中。

Web服务器等待客户端请求消息,在到达它们时对其进行处理,然后使用HTTP响应消息答复Web浏览器。响应中包含一个状态行,指示请求是否成功(例如,“ HTTP / 1.1 200 OK”表示成功)。

成功响应请求的正文将包含所请求的资源(例如新的HTML页面或图像等),然后可以由网络显示 浏览器。
静态网站
下图显示了静态站点的基本Web服务器体系结构(静态站点是一种在请求特定资源时从服务器返回相同硬编码内容的站点)。当用户想要导航到页面时,浏览器会发送HTTP“ GET”请求并指定其URL。

服务器从其文件系统中检索请求的文档,并返回包含该文档和成功状态的HTTP响应(通常为200 OK)。如果由于某种原因而无法检索文件,则返回错误状态(请参阅客户端错误响应和服务器错误响应)。
静态站点基本Web服务器体系结构在这里插入图片描述动态网站
动态网站是仅在需要时才动态生成某些响应内容的网站。在动态网站上,通常通过将数据库中的数据插入HTML模板中的占位符来创建HTML页面(与使用静态网站相比,这是一种存储大量内容的更有效的方法)。

动态站点可以基于用户提供的信息或存储的首选项返回URL的不同数据,并可以执行其他操作作为返回响应(例如发送通知)的一部分。

支持动态网站的大多数代码必须在服务器上运行。创建此代码称为“服务器端编程”(有时也称为“后端脚本”)。

下图显示了动态网站的简单架构。如上图所示,浏览器将HTTP请求发送到服务器,然后服务器处理请求并返回适当的HTTP响应。

对静态资源的请求的处理方式与对静态资源的处理方式相同 网站(静态资源是任何不会更改的文件-通常是CSS,JavaScript,图像,预创建的PDF文件等)。动态网站简单架构在这里插入图片描述
相反,对动态资源的请求被转发(2)到服务器端代码(在该图中显示为Web应用程序)。对于“动态请求”,服务器将解释请求,从数据库中读取所需信息(3),将检索到的数据与HTML模板结合起来(4),然后发送回包含生成的HTML的响应(5,6)。

服务器端和客户端编程是否相同?
现在,让我们将注意力转向服务器端和客户端编程中涉及的代码。在每种情况下,代码都明显不同:

  1. 他们有不同的目的和关注点。
  2. 它们通常不使用相同的编程语言(JavaScript是例外,可以在服务器端和客户端使用)。
  3. 它们在不同的操作系统环境中运行。

在浏览器中运行的代码被称为客户端代码,主要与改善呈现的网页的外观和行为有关。这包括选择和样式化UI组件,创建布局,导航,表单验证等。相比之下,服务器端网站编程主要涉及选择响应于请求将哪些内容返回给浏览器。服务器端代码处理诸如验证提交的数据和请求,使用数据库存储和检索数据以及根据需要将正确的数据发送到客户端之类的任务。

客户端代码是使用HTML,CSS和JavaScript编写的-它在网络浏览器中运行,对底层操作系统的访问很少或没有(包括对文件系统的有限访问)。

Web开发人员无法控制每个用户可能使用哪种浏览器来浏览网站-浏览器与客户端代码功能的兼容级别不一致,并且客户端编程的部分挑战是如何妥善处理浏览器支持方面的差异。

服务器端代码可以用多种编程语言编写-流行的服务器端Web语言的示例包括PHP,Python,Ruby,C#和NodeJS(JavaScript)。服务器端代码具有对服务器操作系统的完全访问权限,开发人员可以选择他们希望使用的编程语言(和特定版本)。

开发人员通常使用Web框架编写代码。 Web框架是功能,对象,规则和其他旨在解决常见问题的代码构造的集合 问题,加速开发并简化特定域中面临的不同类型的任务。

同样,尽管客户端和服务器端代码都使用框架,但是域却非常不同,因此框架也是如此。 客户端Web框架简化了布局和演示任务,而服务器端Web框架则提供了许多“通用” Web服务器功能,您可能必须自己实现这些功能(例如,对会话的支持,对用户和身份验证的支持,轻松的数据库访问, 模板库等)。
您可以在服务器端做什么?
服务器端编程非常有用,因为它允许我们有效地交付针对单个用户量身定制的信息,从而创造更好的用户体验。

像亚马逊这样的公司使用服务器端编程来构造产品的搜索结果,根据客户的偏好和以前的购买习惯提出有针对性的产品建议,简化购买等。

银行使用服务器端编程来存储帐户信息,并仅允许授权用户查看和进行交易。其他服务,例如Facebook,Twitter,Instagram和Wikipedia,都使用服务器端编程来突出显示,共享和控制对有趣内容的访问。

下面列出了服务器端编程的一些常见用法和优点。您会注意到有一些重叠!
高效的信息存储和传递
想象一下在亚马逊上有多少种产品,想象在Facebook上有多少篇文章?为每个产品或帖子创建一个单独的静态页面是完全不切实际的。

服务器端编程使我们可以将信息存储在数据库中,并动态构建和返回HTML和其他类型的文件(例如PDF,图像等)。也可以简单地返回数据(JSON,XML等)以通过适当的客户端Web框架进行渲染(这减轻了服务器的处理负担以及需要发送的数据量)。

服务器不仅限于从数据库发送信息,还可以选择返回软件工具的结果或来自通信服务的数据。内容甚至可以针对正在接收内容的客户端设备的类型。

由于信息位于数据库中,因此也可以更轻松地与其他业务共享和更新信息 系统(例如,在线上或在商店中销售产品时,商店可能会更新其库存数据库)。

注意:您无需费心去查看服务器端代码对信息的有效存储和传递的好处:1. 转到亚马逊或其他电子商务网站。2. 搜索许多关键字,并注意即使结果有所改变,页面结构也不会改变。3. 打开两个或三个不同的产品。再次注意它们具有相同的结构和布局,但是不同产品的内容已从数据库中提取。对于常见的搜索词(例如``鱼''),您可以看到数百万个返回值。使用数据库可以有效地存储和共享这些信息,并且可以仅在一处控制信息的表示。

定制的用户体验
服务器可以存储和使用有关客户端的信息,以提供方便且量身定制的用户体验。例如,许多站点都存储信用卡,因此不必再次输入详细信息。 Google Maps等网站可以使用保存的位置或当前位置来提供路线信息,并使用搜索或旅行历史记录在搜索结果中突出显示本地商家。

可以对用户习惯进行更深入的分析,以预测用户的兴趣并进一步自定义响应和通知,例如提供您可能希望在地图上查看的先前访问或受欢迎位置的列表。

注意:Google地图会保存您的搜索和访问历史记录。经常访问或经常搜索的位置比其他位置突出显示。Google搜索结果会根据之前的搜索进行优化。- 转到Google搜索- 搜索“足球”。- 现在尝试在搜索框中键入“收藏夹”,并观察自动完成搜索的预测。巧合?是吧!

受控访问内容
服务器端编程允许站点限制对授权用户的访问,并且仅提供允许用户查看的信息。
真实的例子包括:

  • Facebook等社交网络允许用户完全控制自己的数据,但只允许其朋友查看或评论该数据。用户确定谁可以看到他们的数据,并确定哪些人可以看到他们的数据出现在其供稿中-授权是用户体验的核心部分!
  • 您现在所在的网站可以控制对内容的访问:所有人都可以看到文章,但是只有登录的用户才能编辑它们。要尝试此操作,请单击此页面顶部的“编辑”按钮-如果登录,将显示编辑视图;如果您尚未登录,将被带到注册页面。

注意:考虑其他实际示例,其中可以控制对内容的访问。例如,如果您访问银行的在线站点,会看到什么?登录到您的帐户-您还能查看和修改哪些其他信息?您能看到什么信息,只有银行可以兑换?

存储会话/状态信息
服务器端编程允许开发人员利用会话,这基本上是一种机制,它允许服务器将信息存储在站点的当前用户上,并根据该信息发送不同的响应。

例如,这使站点可以知道用户先前已登录并显示其电子邮件或订购历史记录的链接,或者可以保存简单游戏的状态,以便用户可以再次访问站点并继续进行操作他们离开了。

注意:请访问具有订阅模式的报纸网站,然后打开一堆标签(例如,年龄)。持续几个小时/天,继续访问该网站。最终,您将开始被重定向到说明如何订阅的页面,并且您将无法访问文章。此信息是存储在cookie中的会话信息的示例。

通知与交流
服务器可以通过网站本身或通过电子邮件,SMS,即时消息,视频对话或其他通信服务发送常规或特定于用户的通知。

一些示例包括:

  • Facebook和Twitter发送电子邮件和SMS消息以通知您新的通信。
  • 亚马逊会定期发送产品电子邮件,提示您与您可能感兴趣的已购买或浏览过的产品相似的产品。
  • Web服务器可能会向站点管理员发送警告消息,以将其警告给服务器上的内存不足或可疑的用户活动。

注意:最常见的通知类型是“注册确认”。选择几乎所有您感兴趣的大型网站(Google,Amazon,Instagram等),然后使用您的电子邮件地址创建一个新帐户。您将很快收到一封确认注册的电子邮件,或要求确认激活您的帐户。

数据分析
一个网站可能会收集有关用户的大量数据:他们搜索什么,他们购买什么,他们推荐什么,他们在每个页面停留多长时间。服务器端编程可用于基于对该数据的分析来完善响应。

例如,亚马逊和谷歌都基于先前的搜索(和购买)来宣传产品。

注意:如果您是Facebook用户,请转到主供稿并查看帖子流。请注意,有些帖子是不按数字顺序排列的-特别是,具有更多“喜欢”的帖子在列表中通常比最近的帖子要多。

另外,请查看正在展示的广告类型-您可能会看到有关您在其他网站上浏览过的内容的广告。 Facebook突出显示内容和广告的算法可能有点神秘,但很明显,它的确取决于您的喜好和观看习惯!

总结
恭喜,您已经到达第一篇有关服务器端编程的文章的结尾。

您现在已经了解到服务器端代码是在Web服务器上运行的,其主要作用是控制向用户发送的信息(而客户端代码主要处理向用户发送数据的结构和表示) 。

您还应该了解它的用处,因为它使我们能够创建网站,以高效地提供针对单个用户量身定制的信息,并对使用服务器端程序员时可以执行的某些操作有所了解。

最后,您应该了解服务器端代码可以用多种编程语言编写,并且应该使用Web框架来简化整个过程。

在以后的文章中,我们将帮助您为第一个站点选择最佳的Web框架。在这里,我们将带您详细了解主要的客户端-服务器交互。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_901500.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt如何搭建一个自己的网站,请看源码。

找了一套chatgpt搭建的源码,修改自己的key就能使用 效果如下,再也不用去挤外网里,舒服。 源码 ➕ wengjunda 可以拿取,是php的 key的申请 尾声 我们就已经能通过服务器访问刚刚搭建的 ChatGPT 了,记得设置访问密码啥…

MVC UnitOfWork EntityFramework架构,网站速度慢的原因总结!

最近参考使用了郭明峰的一套架构来做新的项目架构,这套架构看起来还是不错的,先向小郭同学的分享精神致敬! 项目开发上线后,傻眼了,貌似没有几个人访问的新项目,速度一直慢的跟牛一样,真心没法交…

django入门笔记2- 网站框架搭建

创建一个pydev的工程结构如下: ttt是默认创建的一个包,里面包含整个网站的基本配置 settings.py主要是数据库, 中间件, 一些变量存放的地方 urls.py 跳转的配置一般如下, 把一些url分配到各个二级app中进行解析 urlpatterns patterns(,# Examples:# url(r^$, ttt.views.hom…

爬取网站内的全部小说

爬取网站内的全部小说 我们需要用到的模块有 re BeautifulSoup 首先我们要确定我们爬取的网站:http://www.136book.com/tuijian.php?id=1 一在爬取各个书目录的网址时我选择了用正则表达式来爬取: 选用正则爬取单独的href是比较方便的。爬取后要确定是否为书目录的网站。…

【代码备忘】火狐浏览器插件xpi自动从网站下载安装的代码

欢迎加入我们的QQ群&#xff0c;无论你是否工作&#xff0c;学生&#xff0c;只要有c / vc / c 编程经验&#xff0c;就来吧&#xff01;158427611 【代码备忘】火狐浏览器插件xpi自动从网站下载安装的代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition…

Centos 下JBoss as7 + jdk+mysql+nginx 网站配置

网站基本框架设计好了&#xff0c;下来就开始搭建服务器框架了 。 服务器组选的是 VPS&#xff0c;为什么选VPS,因为我们除了要使用公共的web服务外&#xff0c;还要定制一些系统的软件和服务&#xff0c;自定义上报端口等。除了自己承包整机服务器外&#xff0c;VPS无疑是最佳…

html5/CSS3进阶——宝贝之家网站首页

学习了一段时间的框架&#xff0c;最近在复习最早学的html5、css3&#xff0c;拿了一个小案例做了一下&#xff0c;整个过程还算顺利&#xff0c;附图&#xff1a; 其实页面整体结构还是很清晰的&#xff0c;这里我也是直接使用了多个div嵌套划分的常规手段&#xff0c;没有用…

谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)

在上篇文章里列举了(国内外用ASP.NET开发的大型网站有哪些)&#xff0c;。最后提到了用.NET开发的大型网站和LAMP/JAVA平台的成本比较。其实在很多时候&#xff0c;收费的不一定就比免费的成本更高。因为开发一个网站要使用哪个平台的技术更合适&#xff0c;需要考虑很多种情况…

Git中文学习网站

Git中文学习网站&#xff1a;https://git-scm.com/book/zh/v2

移动开发者的自学宝典:十大在线编程学习网站

目前的教育领域&#xff0c;受移动互联网的冲击&#xff0c;MOOC的理念正在风行&#xff0c;但事实却稍显疲软&#xff0c;不尽如人意。相比美国式的全民热衷&#xff0c;国内的线上教育却还流于形式。其他教育尚且如此&#xff0c;移动开发教育更不用谈。在这种情况下&#xf…

4.4docker基础详细版--在容器中部署静态网站

利用docker技术在容器中使用nginx部署一个静态网站。 容器的端口映射 在使用run的时候指定-p或-P来进行端口映射&#xff1a; -P&#xff1a;将为容器暴露的所有端口进行映射eg&#xff1a;docker run -P -it centos /bin/bash-p&#xff1a;指定映射哪些容器的端口eg&#xf…

9.docker常用命令学习网站常用软件的安装

以下是此页面上的基本 Docker 命令列表&#xff0c;以及一些相关命令&#xff08;如果您要在继续之前进行进一步探索&#xff09;。 docker build -t friendlyname .# 使用此目录的 Dockerfile 创建镜像 docker run -p 4000:80 friendlyname # 运行端口 4000 到 90 的“友好名…

SSM众筹网站

注&#xff1a;本文为伪原创&#xff0c;代码主要参考尚硅谷教程。感谢巨人的肩膀&#xff0c;让我可以看得更远。 本文全部代码见https://github.com/BnKes/crowdfunding 详细目录见文章尾巴 1.系统架构 Atcrowdfunding-parent 父工程,聚合其他工程(pom)Atcrowdfunding-mai…

29个非常优秀的纹理背景网站设计

纹理设计一直是不少同学追求的&#xff0c;今天就推荐30个纹理设计出众的网站&#xff0c;希望对你的设计有所帮助。个人比较喜欢第14个&#xff0c;有家的轻松的感觉&#xff0c;更有三维效果&#xff0c;大爱啊&#xff01; 1. Banger’s分享一个最好用的UI前端框架&#xff…

[转载]搭建个人网站 |博客

一个完全的新人如何搭建自己的个人网站 首先&#xff0c;申明下本文所指的新人是指会上网站看网页&#xff0c;会自己聊QQ&#xff0c;会在新浪、网易等平台上写博客的人。当然你要说这个只要会上网的人都会了&#xff0c;是的&#xff0c;我所指的新人就是会上网的人。所以本文…

推荐一个oracle管理和学习资料网站

http://ajava.org/book/oracle/index.html 很多的oracle管理和学习方面的电子书&#xff0c;值得一看

将网站打包成桌面程序并生成安装包(跨平台)

一、Nativefier将网站打包成桌面程序 介绍 Nativefier 是一个命令行工具&#xff0c;仅仅通过一行代码就可以轻松地为任何的网站创建桌面应用程序&#xff0c;应用程序通过 Electron打包成系统可执行文件&#xff08;.app .exe等), 对应的可执行文件分别可在 Windows、macOS …

WSTMall网站系统最新官方版

WSTMall V1.0是在thinkphp 的经典版本3.2.2基础上进行优化开发的&#xff0c; TP 3.2.2不是thinkphp的一个最新的版本&#xff0c;却是thinkphp最金典的一个版本&#xff0c;正所谓站在巨人的肩膀上&#xff0c;WSTMall V1.0继承了thinkphp大道致简的理念&#xff0c;继承了thi…

天涯孤岸软件商城-.net电子商务网站系统案例

Asp.net 电子商务商城 开发技术项目案例 ASP.NET是作为.NET框架体系结构的一部分推出的。2000年ASP.NET 1.0正式发布&#xff0c;2003年ASP.NET升级为1.1版本。ASP.NET 1.1发布之后更加激发了Web应用程序开发人员对ASP.NET的兴趣。于是在2005年11月微软公司又发布了ASP.NET 2.…

使用Java开发高性能网站(二)

数据存取 数据库服务器的优化和数据的存取&#xff0c;什么类型的数据放在什么地方更好是值得去思考的问题&#xff0c;将来的存储很可能是混用的&#xff0c;Cache&#xff0c;NOSQL&#xff0c;DFS&#xff0c;DataBase在一个系统上都会有&#xff0c;生活的餐具和平日里穿的…