1. Http
HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种应用层协议,用于在客户端(如浏览器)和服务器之间传输超文本数据。它基于请求-响应模型,客户端发送请求,服务器处理并返回响应。HTTP是无状态协议,即每次请求和响应都是独立的,服务器不会记录请求的上下文信息。
HTTP协议的主要特点包括:
- 基于TCP协议:HTTP协议使用TCP作为底层传输协议,确保数据的可靠传输。
- 请求-响应模型:客户端发起请求,服务器处理并返回响应。请求和响应是独立的,不共享上下文信息。
- 无状态协议:服务器不会记录请求的上下文信息,这使得HTTP协议简单、灵活,但可能导致多次请求之间无法共享数据。
- 头部字段:HTTP请求和响应包含头部字段,用于携带附加信息,如内容类型、编码方式等。
- 持久连接:HTTP/1.1引入了持久连接,允许在单个TCP连接上进行多个请求和响应的交互,减少连接建立和关闭的开销。
HTTP协议的工作过程包括以下几个步骤:
- 建立TCP连接:客户端和服务器建立TCP连接,用于传输HTTP数据。
- 客户端发送请求(Request):客户端发送HTTP请求,包含请求方法(如: GET、POST)、URL和HTTP版本等信息。
- 服务器处理请求:服务器解析请求,进行相应的处理。
- 服务器返回响应(Response):服务器返回HTTP响应,包含状态码(如: 200 OK、404 Not Found)和响应内容。
- 客户端处理响应:客户端解析响应,展示给用户或进行后续处理。
HTTP协议广泛应用于网页浏览、文件下载、表单提交等场景。随着互联网的发展,HTTP协议也不断演进,如HTTP/1.1、HTTP/2等,以适应新的需求和挑战。
http协议中用户发出请求一般以get请求(用于基础查询)和post请求(用于私密操作,修改数据等)作为操作。
get请求和post请求的主要区别
请求方法:(get,post) 状态码:200OK(请求成功,服务器正在处理你的请求)404Not Found(你的请求在服务器中不存在)500Internal serve error(服务器内部出现一些问题,无法响应你的请求) 401Unauthorized(你没有权限访问该资源) 302Found(你请求的资源被临时移动到另外一个位置) 503Service Unavailable(服务器无法处理你的请求,可能因为访问人数过多)
2. DNS
DNS(Domain Name System,域名系统)是一种用于将易于理解和记忆的域名转换为与之对应的IP地址的系统。它是互联网的基础组成部分,使得用户可以通过域名访问网站,而不需要记住复杂的IP地址。
DNS的工作原理如下:
- 域名解析:当用户输入一个域名(如www.example.com)时,浏览器会向DNS服务器发送一个查询请求,请求将域名解析为对应的IP地址。
- 递归查询:DNS服务器可以分为根DNS服务器、顶级域DNS服务器(如.com)和权威DNS服务器。当用户发起查询请求时,通常会先访问本地DNS服务器,如果本地DNS服务器不知道对应的IP地址,它会向上游的DNS服务器发起递归查询,直到找到对应的IP地址。
- 缓存机制:为了提高查询效率,DNS服务器会缓存查询结果。当一个DNS服务器收到查询请求时,它会先检查缓存中是否有对应的结果,如果有,则直接返回结果;如果没有,则进行递归查询,并将查询结果缓存起来,以便后续查询。
DNS的主要优点包括:
- 易于记忆和使用:域名比IP地址更易于记忆和使用,提高了用户体验。
- 灵活性:DNS允许将多个域名解析为同一个IP地址,或将一个域名解析为多个IP地址,方便进行负载均衡和故障切换。
- 可扩展性:DNS协议可以方便地添加新的记录类型和功能,以满足不断变化的需求。
DNS的主要缺点包括:
- 延迟:DNS查询需要时间,可能导致网页加载速度变慢。
- 安全性:DNS劫持和缓存投毒等攻击可能导致用户被引导至恶意网站。
为了解决DNS的延迟和安全性问题,研究人员和互联网公司正在开发新的技术,如DNS over HTTPS(DoH)和DNS over TLS(DoT),以提高DNS的安全性和性能。
举例:www(子域名).baidu(二级域名).com(顶级域名,主域名)
TTL:生存时间,表示DNS记录在DNS缓存中可以存活的时间。
3.部分linux命令回顾
设置允许root用户远程登陆(图文解析)
第一步:hostname(查看主机名)
第二步:hostnamectl set-hostname u_buntu(userver)(重新设置主机名为u_buntu(userver))
第三步:cd etc/ssh ls nano sshd_config(相对路径进入ssh文件夹,查看,编辑sshd_config文件)
第四步:进入修改将允许root用户远程登陆设为yes,保存退出
第五步:service ssh restart(重启使设置生效)
测试80端口,安装nginx反向代理服务器(图文解析)
第一步:lsof -i:80(查看当前在80端口运行的进程)
第二步:curl http://localhost(向自己的本地计算机域名发送get请求,常用于测试是否连接80端口,因为80端口是HTTP协议默认的端口)
第三步:连接失败,安装nginx反向代理服务器(apt install nginx,apt updated(刚安装系统后需要更新,))
第四步:apt upgrade(升级所有的包,如果有应用在运行,不要升级,可能会导致应用无法运行)
第五步:再次安装nginx(apt install nginx)
第六步:重复第二步(成功)
第七步:用备案好的域名映射到主机IP
4.安装json-server
第一步:
进入nodejs.org官网,进入下载页面,选择linux系统,v20版本,点击复制到剪贴板,进入ubuntu命令行界面粘贴,回车,apt install npm(失败)(这个命令实际上是错误的,因为 npm 不是通过 apt 直接安装的)
第二步:
切换到此页面,点击下载
第三步:输入命令
详细命令:apt install lrzsz(提供文件传输的功能) l(列出当前文件夹内容) mv node-v20.17.0-linux-x64.tar.xz ../(将node...文件夹移动到上一层目录中) ls(列出当前文件夹内容) cd..(移动到上一层目录)ls () rm -rf .nvm/(删除目录及相关文件) ls() tar xf node...(解压文件) ls() cd node..(进入文件夹) l() cd../() mv node... /usr/local/(将文件夹移动到/usr/local中) cd /usr/local(cd进入) mv node.... node(将次文件夹重命名为node) cd node/bin/() ls().....等等
nano /etc/profile.d/node-bin.sh,配置环境变量export PATH $PATH /usr/local/nade/bin,保存退出后source node-bin.sh,然后便可启动