web前后端交互过程

2023-05-30  本文已影响0人  Mr_Michael

一、简介

1.前端和后端之间的基本交互过程

  1. 客户端发送请求:当用户在浏览器中访问一个网页时,浏览器会发送一个HTTP请求到服务器。这个请求包含了用户需要的信息,比如请求的页面URL、表单数据等。
  2. 服务器接收请求:服务器接收到客户端发送的请求后,会根据请求的URL和参数来确定应该由哪个后端程序处理。
  3. 后端处理请求:后端程序会根据接收到的请求进行相应的处理。这可能涉及到与数据库的交互、进行业务逻辑处理等。后端程序可以使用各种编程语言和框架来实现。
  4. 数据库交互:在后端处理过程中,如果需要从数据库中读取或写入数据,后端程序会与数据库进行交互。它可以执行查询操作、更新数据等。
  5. 生成响应:后端程序处理完请求后,会生成一个HTTP响应,包含了需要返回给客户端的数据和状态码等信息。
  6. 服务器发送响应:服务器将生成的HTTP响应发送回客户端。这个响应包含了请求的结果数据和状态信息。
  7. 客户端渲染和展示:一旦浏览器收到服务器发送的响应,它会根据响应的内容进行解析和渲染,将页面展示给用户。如果响应中包含了前端代码(如HTML、CSS和JavaScript),浏览器会执行这些代码来实现动态交互和页面效果。

2.客户端渲染和展示过程

  1. HTML解析:浏览器首先会解析接收到的HTML代码,构建一个DOM(Document Object Model)树。DOM树表示了HTML文档的结构,它由一系列的HTML元素和它们的关系组成。
  2. CSS解析和样式计算:浏览器接下来会解析CSS样式表,确定每个HTML元素应该应用的样式规则。浏览器会计算出每个元素的最终样式,这包括继承的样式和通过选择器选择的样式。
  3. 布局和绘制:在样式计算完成后,浏览器会根据DOM树和样式信息进行布局,确定每个元素在屏幕上的位置和大小。然后,浏览器将元素转换为屏幕上的可视图像,这个过程称为绘制。
  4. JavaScript执行:如果HTML文档包含了JavaScript代码,浏览器会执行这些脚本。JavaScript可以操作DOM树、修改样式、处理用户交互等。通过JavaScript,开发人员可以实现动态的页面行为和交互。
  5. 事件处理:浏览器会监听用户的交互事件,比如点击、输入等。当用户触发一个事件时,浏览器会执行相应的JavaScript代码来处理事件,可能会修改页面的状态、发送请求等。
  6. 页面更新:当页面的状态或数据发生变化时,JavaScript代码可以更新DOM树的内容,修改样式,或者向服务器发送异步请求获取新的数据。这些操作可以触发浏览器的重新布局和绘制,从而更新页面上的内容。

3.网址 - URL

URL是缩写,其英文全称是:Uniform Resource Locator(统一资源定位符),由一下几部分组成:

4.Web服务API

Web服务API(应用程序编程接口)是用于不同软件应用程序之间通信和交互的一组规则和协议。通过使用API,开发人员可以访问和使用其他软件应用程序的功能和数据,而无需了解底层实现细节。

当访问网页的URL时,服务器会返回一个网页文件,浏览器把这个网页显示出来。而访问API的URL的时候,返回的是一些文本数据而非网页,例如高德地图天气查询API

1)Web服务API说明

  1. 请求和响应格式:Web服务API使用HTTP协议进行通信,通过发送HTTP请求来调用API,然后收到HTTP响应作为回应。常见的HTTP方法是GET、POST、PUT、DELETE等。
  2. 认证和授权:为了保护API的安全性和限制访问,通常需要进行身份验证和授权。常见的认证方法包括API密钥、OAuth等。
  3. 端点(Endpoints):API的端点是指可以通过特定URL访问的特定功能或资源。例如,/users可能是一个用于获取用户信息的端点。
  4. 请求参数:API请求通常可以接受一些参数来指定操作的细节。这些参数可以作为查询字符串参数、URL路径参数或请求体中的JSON/XML数据。
  5. 响应:API的响应通常以JSON或XML格式返回。响应中包含请求的结果、状态码和其他相关信息。
  6. 错误处理:API可能会返回错误响应,其中包含有关发生的错误类型、错误消息和适当的状态码。
  7. 版本控制:API可能会使用版本控制来管理API的变化。通过在URL中包含版本号,可以确保在进行重大更改时不会破坏现有的API客户端。
  8. 文档和说明:好的API通常提供详细的文档和说明,描述每个端点的功能、参数、返回值和示例代码。

2)最常见的 API 协议

3)网络请求结构和类型

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成。

POST https://developer.mozilla.org/en-US/profiles/hamishwillee/edit HTTP/1.1
Host: developer.mozilla.org
Connection: keep-alive
Content-Length: 432
Pragma: no-cache
Cache-Control: no-cache
Origin: https://developer.mozilla.org
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: https://developer.mozilla.org/en-US/profiles/hamishwillee/edit
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8,es;q=0.6
Cookie: sessionid=6ynxs23n521lu21b1t136rhbv7ezngie; _gat=1; csrftoken=zIPUJsAZv6pcgCBJSCj1zU6pQZbfMUAT; dwf_section_edit=False; dwf_sg_task_completion=False; _ga=GA1.2.1688886003.1471911953; ffo=true

csrfmiddlewaretoken=zIPUJsAZv6pcgCBJSCj1zU6pQZbfMUAT&user-username=hamishwillee&user-fullname=Hamish+Willee&user-title=&user-organization=&user-location=Australia&user-locale=en-US&user-timezone=Australia%2FMelbourne&user-irc_nickname=&user-interests=&user-expertise=&user-twitter_url=&user-stackoverflow_url=&user-linkedin_url=&user-mozillians_url=&user-facebook_url=

4)响应报文结构与类型

HTTP响应报文和请求报文的结构类似,由状态行(request line)、响应头部(header)、空行和响应实体4个部分组成。

5.静态网站与动态网站

1)静态网站

由静态文件组成的网站,这些文件在服务器上预先生成,并以相同的方式呈现给所有用户。每个页面都是独立的HTML文件,不包含动态内容或交互功能。静态网站的内容在访问之前已经存在,并且在用户请求时直接发送给用户的浏览器。由于没有数据库或服务器端代码的需求,静态网站通常具有简单的架构和较快的加载速度。

静态网站的优点包括:

  1. 简单易于创建和维护,不需要复杂的后端开发。
  2. 快速加载,因为页面内容已经在服务器上生成并且不需要额外的处理。
  3. 更好的安全性,因为没有与数据库或服务器端代码交互的机会

静态网站的缺点包括:

  1. 缺乏动态内容和个性化体验,每个用户看到的内容都是相同的。
  2. 更新和更改内容需要手动修改和重新生成每个页面。
  3. 交互性和复杂功能的实现有限。

2)动态网站

使用服务器端脚本和数据库等技术生成内容的网站,在用户请求时动态生成页面内容。服务器端脚本可以根据用户的请求和其他条件从数据库中检索数据、执行计算和逻辑,并生成相应的HTML页面。动态网站通常具有更丰富的功能和交互性。

动态网站的优点包括:

  1. 提供个性化和交互性的体验,可以根据用户的需求和条件生成动态内容。
  2. 可以轻松更新和管理内容,不需要手动编辑和生成每个页面。
  3. 支持更复杂的功能,如用户登录、评论系统、购物车等。

动态网站的缺点包括:

  1. 复杂的开发和维护需求,需要后端开发人员编写服务器端脚本和处理数据库交互。
  2. 加载速度可能较慢,因为页面内容需要在服务器端生成。
  3. 需要更高级的服务器配置和资源,以支持处理动态请求的负载。

二、后端web框架

后端 Web 框架是一种用于构建和开发服务器端应用程序的软件框架。它提供了一组工具、库和规范,使开发人员能够更轻松地构建功能强大的 Web 应用程序。后端 Web 框架通常用于处理与数据库、用户认证、请求处理和响应等相关的服务器端逻辑。

常用后端web开发框架:

框架 编程语言 著名的用例
Django Python Instagram
Pinterest
Coursera
Laravel PHP Deltanet
Travel
Neighborhood
Lender
MyRank
Ruby on Rails Ruby ZendDesk
Shopify
GitHub
ExpressJS NodeJS MySpace
GeekList
Storify
CakePHP PHP Mapme
Educationunlimited
Followmy Tv
Flask Python Red Hat
Rackspace
Reddit
Asp .NET C# Microsoft
Godaddy
Ancestry
Spring Boot Java Trivago
Via Varejo
Intuit
Koa NodeJS
Phoenix Elixir Financial Times
Fox 10
ABC15

参考

上一篇 下一篇

猜你喜欢

热点阅读