目录
远程连接服务器
1.实现免密登录
1.1 两台Linux之间的免密登录
第一步:在客户端产生秘钥(一对公钥和私钥对)
第二部:将客户端的公钥copy到服务端
[root@server ~]# ssh-keygen -t rsa #在客户端产生秘钥,使用RSA加密算法
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #保存的位置
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): #输入为私钥设置的口令
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is: #指纹
SHA256:ufcAFy+hzTmmxSSWTGAXNr8tx342EEZ8V5cpybMyrCU root@server.local
The key's randomart image is:
+---[RSA 3072]----+
| o.*. .o . *|
| . = + ..=.oo|
| = * o.+. |
| . E # o |
| S ^ O |
| O * . |
| o o . + |
| . o o . |
| . |
+----[SHA256]-----+ #SHA256是一种哈希算法[root@server .ssh]# ssh-copy-id root@192.168.30.137 #将客户端产生的公钥copy到服务
器端,无需指定文件,会自动 copy到服务端的authorized_keys
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.30.137 (192.168.30.137)' can't be established.
ECDSA key fingerprint is SHA256:/Xif2a97EhjPSwDs+8n36B8aQR211y0AEhMBLMS6dlw.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.30.137's password:Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@192.168.30.137'"
and check to make sure that only the key(s) you wanted were added.
[root@server .ssh]# ssh root@192.168.30.137 #验证是否是免密登录(137为服务端)
1.2 在Windows上免密登录Linux服务端
在Xshell上‘工具’里面有个新建用户秘钥(必须要给秘钥设置口令),然后将产生的公钥通过Xftp上传到服务器端的指定文件中,然后使用重定向到authorized_keys文件中。然后在Xshell上新建一条链接,在用户登录身份验证的方法选择key_public的方式。
2.设置只允许student1, student2用户登录
[root@server ssh]# vim sshd_config
[root@server ssh]# systemctl restart sshd #重启一下配置文件
在配置文件中没有AllowUsers这一项,也就是白名单。在名单中的用户可以远程连接,其他用户不能远程连接(包括root用户)
在这我们可以看到,student2可以远程连接成功,而root用户被拒绝连接。
web服务器
HTTP协议
HTTP超文本传输协议(HyperText Transfer Protocal),是互联网上最广泛的一种网络协议,所有的WWW (world wide web:全球信息广播) 文件都必须遵守这个标准。
它是建立在TCP上一种的无状态连接,整个基本的工作流程是客户端发送一个HTTP请求,说明客户端想要访问的资源和请求的动作,服务端收到请求之后,服务端开始处理请求,并根据请求做出相应的动作访问服务器资源,最后通过发送HTTP响应把结果返回给客户端。其中一个请求的开始到一个响应的结束称为事务,当一个事物结束后还会在服务端添加一条日志条目。
3.get和post的区别
4.HTTP状态码,常用的状态码有哪些?
-
- 1xx:指示信息 —— 表示请求已接收,继续处理
- 2xx:成功 —— 表示请求已被成功接收、理解、接受
- 3xx:重定向 —— 要完成请求必须进行更进一步的操作
- 4xx:客户端错误 —— 请求有语法错误或请求无法实现
- 5xx:服务器端错误 —— 服务器未能实现合法的请求
- 常见状态代码、状态描述的说明如下:
- 200 OK:客户端请求成功
- 400 Bad Request:客户端请求有语法错误,不能被服务器所理解
- 401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用
- 403 Forbidden:服务器收到请求,但是拒绝提供服务
- 404 Not Found:请求资源不存在,举个例子:输入了错误的URL
- 500 Internal Server Error:服务器发生不可预期的错误
- 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
5.HTTP请求报文和响应报文
- HTTP报文:http报文中有很多行内容,这些行的字段内容都是由一些ASCII码串组成,但各个字段的长度是不同的。http报文可分为两种,一种是从web客户端发往web服务器的http报文,称为请求报文。另外一种是从web服务器发往web客户端的报文,称为响应报文
http请求报文由请求行,请求头部,空行和请求报文主体几个部分组成
http响应报文由起始行,响应头部,空行,响应报文主体几个部分组成
6.HTTP是如何保持连接状态的
HTTP协议是建立在TCP上一种的无状态连接,所谓的无状态,就是指服务器不记录用户的信息,对于事务处理没有记忆能力,无法根据之前的状态进行本次的请求处理。
状态保持的方法:cookie+session实现
cookie:
Cookie是由服务器端生成,发送给浏览器,浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时自动发送该Cookie给服务器。
Cookie可以用来在某个WEB站点会话间持久的保持状态
session:
Session是另一种记录客户状态的机制,基于Cookie实现,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是Session,客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
通过cookie和session的了解,我们可以看出Cookie的本质就是文件,一般放在请求头里,保存在浏览器上。
由于cookie并不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
并且session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。