目录
1. web基础知识
1. http协议
HTTP协议,即超文本传输协议(HyperText Transfer Protocol),是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网(World Wide Web)的基础协议,通过它,浏览器和服务器可以进行通信,实现网页的传输和展示。
2. 网络的三种架构及特点
- 客户机/服务器结构(C/S)
- 浏览器/服务器结构(B/S)
- P2P结构
1.客户机/服务器结构(C/S)
客户机/服务器(Client/Server,简称C/S)结构是一种网络架构模型,用于描述计算机之间如何进行通信和协作。在这种结构中,计算任务被分为客户端和服务器两部分,每一方都具有特定的角色和功能。
2. 浏览器/服务器结构(B/S)
浏览器/服务器(Browser/Server,简称B/S)结构是一种网络架构模型,它利用Web浏览器作为客户端,服务器则提供应用程序服务和数据处理。B/S结构在互联网的广泛应用中发挥了重要作用,尤其在Web应用程序中。
3. P2P结构
P2P(Peer-to-Peer,点对点)结构是一种网络架构模型,其中每个节点(即每个对等方或peer)都具有相同的功能和地位。与传统的客户端/服务器(C/S)结构不同,在P2P结构中,每个节点既可以作为客户端,也可以作为服务器。
3. 网站搭建
- 服务器
- 中间件
- 数据库(数据存放的仓库)
- 代码(后端代码,写的是功能点,比如:python,java等)
- 静态资源(前端代码,css,Html,js)
1. 服务器
服务器是一种计算机程序或设备,提供服务并响应来自客户端的请求。这些服务可以包括数据存储、计算资源、文件共享、数据库管理、应用程序运行等。
2.中间件
中间件是介于应用系统和系统软件之间的一类软件,就比如apache,nginx,tomcat,lis这些中间件,网站是一个装修好的房子,中间件就是装修房子的钢筋混泥土。是不可确实的一部分
4. 网站的运行原理
1. 网站的常用术语
1. 基本术语
URL(Uniform Resource Locator):
- 统一资源定位符,表示网络资源的地址。例如,
https://www.example.com/index.html
。
- 统一资源定位符,表示网络资源的地址。例如,
域名(Domain Name):
- 用于标识互联网资源的名称,易于记忆和使用。例如,
example.com
。
- 用于标识互联网资源的名称,易于记忆和使用。例如,
IP地址(IP Address):
- 用于标识网络中设备的唯一地址,例如IPv4地址
192.0.2.1
或IPv6地址2001:0db8::1
.
- 用于标识网络中设备的唯一地址,例如IPv4地址
DNS(Domain Name System):
- 域名系统,将域名解析为IP地址。DNS服务器负责处理这些解析请求。
2. 网络协议
HTTP(Hypertext Transfer Protocol):
- 超文本传输协议,用于在客户端和服务器之间传输网页数据。默认端口为80。
HTTPS(Hypertext Transfer Protocol Secure):
- 加密的HTTP协议,通过SSL/TLS提供安全的数据传输。默认端口为443。
TCP/IP(Transmission Control Protocol/Internet Protocol):
- 传输控制协议/互联网协议,是网络通信的基础协议。
3. 网站结构
前端(Front-end):
- 网站的用户界面部分,包括HTML、CSS和JavaScript。
后端(Back-end):
- 服务器端的部分,包括服务器应用程序、数据库、业务逻辑等。
全栈(Full Stack):
- 涵盖前端和后端的开发技术和知识。
4. 技术和工具
HTML(HyperText Markup Language):
- 超文本标记语言,用于定义网页的结构和内容。
CSS(Cascading Style Sheets):
- 层叠样式表,用于控制网页的外观和布局。
JavaScript:
- 一种脚本语言,用于实现网页的动态功能和交互。
API(Application Programming Interface):
- 应用程序编程接口,允许不同软件系统之间进行通信和数据交换。
5. 服务器和托管
Web服务器(Web Server):
- 处理HTTP请求并提供网页内容的服务器软件或硬件。常见的Web服务器软件有Apache、Nginx、IIS等。
托管(Hosting):
- 将网站文件和数据存储在服务器上,使其可以通过互联网访问。托管服务提供商提供服务器空间和相关服务。
CDN(Content Delivery Network):
- 内容分发网络,通过分布在各地的服务器缓存和分发内容,提高访问速度和可靠性。
6. 数据库
数据库(Database):
- 用于存储和管理数据的系统。常见的数据库有MySQL、PostgreSQL、MongoDB等。
SQL(Structured Query Language):
- 结构化查询语言,用于管理和操作关系数据库中的数据。
NoSQL:
- 非关系型数据库,适用于大规模和多样化的数据存储需求。常见的有MongoDB、Cassandra等。
7. 开发工具
IDE(Integrated Development Environment):
- 集成开发环境,提供代码编辑、调试和构建等功能的工具软件。例如,Visual Studio Code、IntelliJ IDEA。
版本控制系统(Version Control System,VCS):
- 用于管理代码版本和变更历史的系统。常见的有Git、SVN等。
CI/CD(Continuous Integration/Continuous Deployment):
- 持续集成和持续部署,自动化构建、测试和发布代码的流程。
8.用户交互
UI(User Interface):
- 用户界面,用户与网站交互的界面设计和布局。
UX(User Experience):
- 用户体验,用户在使用网站过程中的整体感受和满意度。
响应式设计(Responsive Design):
- 设计适应不同屏幕尺寸和设备的网页,使其在各种设备上都有良好的显示效果。
9.安全性
SSL/TLS(Secure Sockets Layer/Transport Layer Security):
- 安全套接字层/传输层安全协议,用于加密数据传输,确保数据的安全性。
防火墙(Firewall):
- 保护网络免受未经授权访问和攻击的安全系统。
身份验证(Authentication):
- 验证用户身份的过程,常见的方法包括密码、双因素认证等。
10.性能优化
缓存(Cache):
- 存储频繁访问的数据以加快响应速度的机制。可以在客户端、服务器和CDN中实现缓存。
负载均衡(Load Balancing):
- 将请求分配到多个服务器,以提高网站的可用性和性能。
压缩(Compression):
- 减小文件大小以加快传输速度的技术。常见的压缩方法有Gzip、Brotli等。
2. 运行原理
1.输入网站,如www.baidu.com(http://www.baidu.com),http是协议,www是网络服务类型,baidu.com是域名。
2.浏览器和ISP通信,在DNS中查找www.baidu.com的IP地址,然后发送给DNS服务,最后向IP地址发送请求;
3.浏览器获取IP地址和端口,打开TCP套接字连接,实现浏览器和服务器的连接;
4.发送用户HTTP请求给服务器;
5.web服务器根据请求查询相应的HTML页面,并返回。
3. 运行原理图
4. DNS的讲解
域名系统(DNS, Domain Name System)是互联网的基础技术之一,用于将人类易于记忆的域名(如www.example.com)转换为计算机使用的IP地址(如192.0.2.1)。这是因为计算机网络使用IP地址进行通信,而人类更倾向于使用容易记住的名称。