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连接一下本机,成功