web基础和http协议 附:nginx服务的安装
web基础和http协议:
https://www.baidu.com/
URL
https:// 协议
http://
www.baidu.com/ 域名
web介绍:
DNS和域名
DNS解析的方式:
1、运营商
2、/etc/hosts 人工配置的域名和ip地址之间的映射关系
3、/etc/resolv.conf dns服务器的ip地址 bind,内网解析域名和ip地址之间的关系
网页:
编程语言: HTML语言编译而成的前端页面
纯文本格式的文件
浏览器翻译纯文本格式的文件,便于用户进行浏览
网站: 由多个页面构成的,是网页的一个结合体。
首页: 网站在设计时,已经设计好了的,用户打开该站点默认的页面。
链接:
URL: https://www.baidu.com/
超链接: 将网站中的不同页面链接起来,形成一个内部的连接。
html: 编写网页的超文本的标记语言
发布: 域名,网页设计好,多个页面通过超链接连接在一起,形成网站,然后注册发布。
< title> 定义文档的标题
< base> 页面链接的默认地址
< meta> html文档中元数据
< script> 客户端的脚本文件
web:
world wide web 全球广域网 万维网
是一种分布式图形信息系统:
强大的网络基础设施
强大的硬件设备和市场能够接受的价格
web1.0 已淘汰
纯页面模式,单向行为。
web2.0:
更注重用户的交互,用户即是网站内容的消费者,同时也是网站内容的制造者。
静态页面:
文本格式的页面,是一个标准的HTML文件
文本,图像,声音,动画都属于页面的内容。也是静态页面
没有后台数据库,所有的信息是不可以交互。
相对更新起来比较麻烦,一般用于网贴的首页或者是展示型的网站
静态页面的URL是一个固定地址
动态页面:
网页是URL是不固定的,后台能够和用户进行交互
在动态网站的URL中,一般都有”?”
动态页面主要是和数据库进行交互
静态页面的特点:
1、固定的URL地址
2、页面就是一个纯文本的用HTML语言编译的文件
3、静态页面没有后台数据库
4、静态页面不能实现交互
5、访问速度快,更新起来比较麻烦
动态页面:
1、交互性 网页会根据用户的要求和操作进行响应,甚至改变页面的内容
2、自动更新
3、不同时间不同的人看到的页面会发生变化。
协议: 就是内容信息之间传播的规则和标准
cookie协议:浏览器提供的协议功能
cookie的信息不是保存在网站的,保存在浏览器本地,保存用户的登录状态,跟踪统计用户访问网站的习惯。
是一个很小的文件,主要的作用是保存用户的信息。
http协议:
超文本传输协议,客户端和服务端之间进行数据传输的一种规则。
http是应用层的协议,建立在传输层的tcp之上,客户端和服务端之间通过tcp协议建立连接,
应用层上使用http协议进行数据传输,通过指定端口来进行通信。
http建立连接的过程:
客户端和服务端通过tcp协议建立连接,客户端向服务端的80端口发送连接请求
三次握手的过程
http数据传输
客户端向服务端发送请求(http),http的请求
请求头和请求体
method: 客户端的请求方式 get post
path: 客户端请求的路径
scheme: 请求的协议 (https)
accept: 客户端请求之后,服务端需要响应客户端,客户端能够接受的数据类型
host: 显示请求客户端的ip地址
proxy-connection: keep-alive 告诉服务器如何对请求连接处理 keepalive
keepalive: 服务端响应请求,并且传输完数据之后,不要立刻关闭连接,保持连接一段时间 (tcp连接)
user-agent: 客户端请求的工具信息 (浏览器的信息)
http1.1新增的功能 http1.0......
响应头和响应体:
请求方法: GET
状态代码: 200
状态码: 指的服务端对客户端请求的响应结果。
1xx 信息提示
2xx 200-206
200 表示成功,客户端发送的请求服务端能够成功的处理
3xx 300-305
重定向
4xx 400-415
客户端错误
5xx 500-505
服务端错误
200 成功 请求成功
301 重定向 永久重定向
302 临时重定向
304 表示访问的是缓存
403 客户端没有权限访问服务端的页面
404 客户端请求的页面不存在
500 内部服务器错误
502 网关失效
503 当前服务不可用
504 网关请求超时
注:产生502(无效网关)的原因:
首先查看网络问题,看看数据包没有送到网卡;
如果有数据包,但是网卡没收到,可能是网卡问题或防火墙问题;
如果网卡接收到了,处理不了,查看服务器问题
c/s client server app---服务器
b/s browser server 浏览器----服务器
请求的方式:
get: get是客户端向服务端请求的默认方式,请求数据
get的请求是可以被缓存的
get的请求,请求字段的长度是有限制的
get的方式,请求的字段会显示再url中,不太安全
post: post是向服务端发送数据,是向服务端添加或者是修改数据
post的数据是没有办法进行缓存的
post的请求没有长度限制
post请求的查询字段在url中是不显示的
服务器处理请求,根据请求体当中的内容进行处理
服务器返回响应的数据,生成一个响应体,响应体包含状态码,表示服务器对请求的处理结果
数据传输,通过tcp建立的连接传输数据
数据传送完毕之后,连接关闭
https: 加密的http。加密的超文本传输协议。在数据传输之前要通过证书进行身份验证,验证通过才可以进行数据传输
http 80
https 443
nginx服务的安装
选择一个新建的虚拟机,选择nginx1.22版本,拖到opt目录下
安装依赖环境
apt -y install libpcre3-dev zlib1g-dev libssl-dev build-essential
添加用户程序
解压
cd到此目录下,添加http协议
./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
用4核cpu加速安装,注意不到设置太多
此时,已安装完毕
cd到/usr/local下,ll查看发现nginx的所有者和所在组都是root,我们要改成nginx
chown -R nginx:nginx nginx/ 换成nginx, ln -s做一个软链接到 /usr/bin/,让系统能够识别到
ln -s /usr/local/nginx/sbin/nginx /usr/bin/
nginx -t 查看一下语法
vim /lib/systemd/system/nginx.service 在此目录下添加系统配置文件
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/run/nginx.pid
#注意文件位置,如果不对 启动不了
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
#注意启动文件位置
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
cd nginx,创建目录run,返回上一级,再修改一次所有者所在组chown -R nginx:nginx nginx/
cd conf/ vim nginx.conf
修改pid号一行如图所示,
检查一下语法是否都正确
systemctl daemon-reload 获取刚才service的配置文件
curl -I连接一下本机,成功
相关文章:

web基础和http协议 附:nginx服务的安装
web基础和http协议: https://www.baidu.com/ URL https:// 协议 http:// www.baidu.com/ 域名 web介绍: DNS和域名 DNS解析的方式: 1、运营商 2、/etc/hosts 人工配置的域名和ip地址之间的映射关系 3、/etc/resolv.conf dns服务器的ip地址 bind,内网解析域名和ip地址…...

springboot利用easypoi实现简单导出Excel
vue springboot利用easypoi实现简单导出 前言一、easypoi是什么?二、使用步骤 1.传送门2.前端vue3.后端springboot 3.1编写实体类(我这里是dto,也一样)3.2控制层结尾 前言 今天玩了一下springboot利用easypoi实现excel的导出,以前…...

【前端新手小白】学习Javascript的【开源好项目】推荐
目录 前言 1 项目介绍 1.1 时间日期类 1.2 网页store类 1.3 事件类 1.4 Number类 1.5 String类 1.6 正则验证类 1.7 ajax类 1.8 data数据类 1.9 browser浏览器类 2 学习js-tool-big-box开源项目时有哪些收获 2.1 你可以这样做 2.2 如果你需要使用本项目 2.3 你…...

CentOS7虚拟机 网络适配器 NAT模式和桥接模式区别
一、环境介绍 宿主机:Windows电脑 虚拟机:VMware下的CentOS7 局域网:路由器下的各真实主机组成的网络 内部局域网:宿主机构建的一个内部网路 二、NAT和桥接网络链接模式区别 NAT模式:相当于宿主机构建一个内部局域网&a…...

sql删除冗余数据
工作或面试中经常能遇见一种场景题:删除冗余的数据,以下是举例介绍相应的解决办法。 举例: 表结构: 解法1:子查询 获取相同数据中id更小的数据项,再将id不属于其中的数据删除。-- 注意:mysql中…...

STM32-C语言基础知识
C语言基础知识 stdint.h简介 给寄存器某个位赋值 给位6赋值为1流程:先清0,再赋值 带参数的宏定义 建议使用do {…}while(0)来构造宏定义 条件编译 条件编译后面必须跟宏语句,如#if _LED_H 指针使用常见的2大问题 1、未初始化 2、越界使…...

【Point-LIO】基于Ubuntu20.04的ROS1平台的Point-LIO部署Mid-360激光雷达
0、前言 Mid360参数 1、代码拉取 2、代码编译运行 文件结构 编译流程: 1、先编译livox_ros_driver2 2、编译整个工程文件 3、运行launch文件(livox_ros_driver2) 成功启动: 3、实物运行 看得出来,在rviz…...

02_Node.js模块化
02_Node.js模块化 知识点自测 以下代码运行的结果是多少? const arr [10, 20, 30] const result arr.map(val > val 1).reduce((sum, val) > sum val, 0) console.log(result) A:60 B:63 <details><summary>答案</…...

网络——HTTP与HTTPS三次握手和四次挥手
HTTP协议本身并不直接处理TCP连接的建立和关闭,这些是由底层的TCP协议来完成的。但是,由于HTTP通常运行在TCP之上,因此理解TCP的三次握手(用于建立连接)和四次挥手(用于关闭连接)对于理解HTTP通…...

ModelScope-Agent(1): 基于开源大语言模型的可定制Agent系统
目录 简介快速入门 简介 github地址 快速入门 看前两篇,调用千问API和天气API # 选用RolePlay 配置agent from modelscope_agent.agents.role_play import RolePlay # NOQArole_template 你扮演一个天气预报助手,你需要查询相应地区的天气&#x…...

开发知识点-uniCloud
开发知识点-uniCloud 服务空间云函数 cloudfunctions云对象importObjectJSON 格式的文档型数据库Collection unicloud数据的指定表集合 DB SchemaJQL 语法参考资料 服务空间 项目关联空间 云函数 cloudfunctions 云对象importObject JSON 格式的文档型数据库 nosql 非关系…...

Redis——主从复制原理
Redis的主从复制原理是其高可用性和分布式读取能力的重要基础。以下是Redis主从复制原理的详细解释: 一、主从复制的基本概念 Redis的主从复制是一种数据复制和备份的方式,它允许一个主节点(Master)将其所有的数据同步到一个或多…...

MATLAB数学建模之画图汇总
MATLAB是一种强大的数学软件,广泛应用于工程计算、控制设计、信号处理等领域。在数学建模中,MATLAB的绘图功能可以帮助我们直观地展示数据和模型结果。 1. 二维数据曲线图 1.1 绘制二维曲线的基本函数 plot函数用于绘制二维平面上的线性坐标曲线图&am…...

Milvus attu - docker 使用 及 版本兼容
文章目录 版本查看attu 和 milvus 的兼容性Docker 加载attu docker 合并到 Milvus文件管理使用 docker compose 挂在 Milvus,登录 attu 出现报错: Error: Failed to connect to Milvus: Error: 1 CANCELLED: Call cancelled 于是检查兼容问题 版本查看 Milvus 版本发布: htt…...

okHttp的tcp连接池的复用
okhttp的连接池是tcp连接池吧,是两台机器之间的连接,ip:port连接,然后具体的接口再添加具体的url吗? 具体的 HTTP 请求(包括 URL、请求方法、头部等)则是在复用的 TCP 连接上进行传输的。 是的,…...

nginx 自启动失败:Failed to parse PID from file: Invalid argument
记一次nginx自启动配置的问题 我的配置如下: [Unit] DescriptionA high performance web server and a reverse proxy server Afternetwork.target[Service] Typeforking PIDFile/home/u24/nginx/pid/nginx.pid ExecStartPre/home/u24/nginx/sbin/nginx -t -q -g d…...

Wwise SoundBanks内存优化
1.更换音频格式为Vorbis 2.停用多余的音频,如Random Container的随机脚步声数量降为2个 3.背景音乐勾选“Stream”。这样就让音频从硬盘流送到Wwise,而不是保存在内存当中,也就节省了内存 4.设置最大发声数Max Voice Instances 5.设置音频…...

centos 常见问题处理
免密登录配置 # 在当前机器下 执行命令 生成 私钥和公钥 ~/.ssh 目录下 ssh-keygen -t rsa # 执行如下命令 把公钥 放到 对应机器上的 ~/.ssh/authorized_keys ssh-copy-id 172.17.68.220 # 如此 两台机器两两配置 centos ssh连接慢 vim /etc/ssh/sshd_config # UseD…...

简述Vue每个周期具体适合哪些场景?
Vue.js 的生命周期分为几个不同的阶段,每个阶段都对应着组件的创建、挂载、更新和销毁。以下是对 Vue 实例每个生命周期周期的具体场景描述: 创建前/后(beforeCreate / created) beforeCreate:在实例初始化之后&#x…...

Alibaba Druid(简称Druid)
目录 核心功能 数据源配置与管理: 高性能与可扩展性: 监控与SQL解析: 安全性: 应用场景 使用方式 配置示例 通过yaml方式配置 web.xml中配置 访问Druid的监控页面 监控页面展示 Alibaba Druid(简称Druid&am…...

linux protobuf的安装与使用
首先,下载protobuf: wget https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-cpp-3.21.11.zip 然后,解压: tar -xf protobuf-2.5.0.tar.gz 接着,安装protobuf cd protobuf-3.21.11…...

关于Chrome自动同步书签的解决办法
前言 并不一定适用所有用户, 目前我在网上搜集了一些资料,也做了一些尝试。 就我个人总结的经验来讲,分享大家以下几种办法: 1.书签同步插件 点击如下🔗: Chrome书签同步https://bm.famend.cn/ …...

基于深度学习的甲状腺结节影像自动化诊断系统(PyQt5界面+数据集+训练代码)
随着医学影像技术的发展,计算机辅助诊断在甲状腺结节的早期筛查中发挥着重要作用。甲状腺结节的良恶性鉴别对临床治疗具有重要意义,但传统的诊断方法依赖于医生的经验和影像学特征,存在一定的主观性和局限性。为了解决这一问题,本…...

docker常用操作命令
Docker 常用命令 列出所有容器 ID docker ps -aq停止所有容器 docker stop $(docker ps -aq)删除所有容器 docker rm $(docker ps -aq)删除所有镜像 docker rmi $(docker images -q)复制文件 docker cp mycontainer:/opt/file.txt /opt/local/ docker cp /opt/local/file…...

Android:生成Excel表格并保存到本地
提醒 本文实例是使用Kotlin进行开发演示的。 一、技术方案 org.apache.poi:poiorg.apache.poi:poi-ooxml 二、添加依赖 [versions]poi "5.2.3" log4j "2.24.2"[libraries]#https://mvnrepository.com/artifact/org.apache.poi/poi apache-poi { module…...

JVM-程序计数器与栈
目录 程序计数器1:作用:2:特点:1:线程私有2:内存不会溢出 栈1:介绍:2:问题辨析: 程序计数器 1:作用: 程序计数器的作用就是记录下一条…...

【kotlin 】内联类(value class / inline class)
官方文档:https://kotlinlang.org/docs/inline-classes.html 注:inline class 关键字已经被废弃,取而代之的是value class。现在使用内联类需要定义类为value class,并使用JvmInline注解进行标注。 一、使用场景 有时候ÿ…...

【SpringBoot】使用IDEA创建SpringBoot项目
1、使用SpringBoot脚手架创建 我们使用SpringBoot的脚手架Spring Initializr创建,如图所示: 2、选择SpringBoot版本 最开始做项目时候,组长说创建一个 springboot 2.5.4 的项目,mysql使用 5.6.X ,maven使用是3.6.X…...

C++设计模式(原型、代理、适配器、组合)
一、原型模式 1.定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式允许通过复制现有的对象来创建新对象,而不是通过实例化类来创建。这种方式可以避免创建重复的对象,从而提高性能和降低内存消耗。 2.组成 …...

如何在CentOS 7上使用FreeIPA设置集中式Linux身份验证
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 FreeIPA 是一个针对 Linux 的开源安全解决方案,提供帐户管理和集中式身份验证,类似于微软的 Active Direc…...