一、题目描述
有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数(m<n)。
博客网站的运行有一段时间了,随着博文数量的不断增多、文章类型的不断丰富,于是逐渐的对文章的隐私性有了要求。有些文章可能是自己的私人日记,不便于公开发表,但是有时候又需要对一些亲密的人开放,因此,就需要对这些文章加密处理,然后向外提供密码访问。
Hexo博客属于静态网页,我们不能够在后端对用户的请求做分析,判断其是否有权限访问某一文章,所以我们就要利用静态网站的特征来进行加密,对Hexo博文的加密访问处理大致有两种思路,其一是在前端进行加密,通过对具体的文章内容进行加密,用户访问的时候将加密后的文章传送到前端,然后通过输入的密码进行解密文章,之后显示在网页上。其二是通过服务器提供的路径访问控制功能进行加密,利用该功能对特定网站路径提供授权访问,从而达到博文的加密访问功能。
1) Hexo文章内容加密的方式有很多,一般是使用可逆的加密算法对文章内容进行加密解密,比如可以使用”AES加密算法”等,当然也可以自己编写一些算法,总之保持加密后的字符串可逆即可。在前端,将字符串解密之后,添加相关的样式就可以展示出来了。Hexo现在也有相关的插件,例如Hexo-Blog-Encrypt,hexo-encrypt。这些插件使用起来非常方便,安装之后简单的配置一下就可以使用。我的博客使用的是Hexo-Blog-Encrypt。
2) Hexo可以运行在众多的服务器软件上面,例如有:Nginx,Tomcat,Apache等。这些软件基本上也都提供了路径访问控制的功能。本网站使用的是Nginx,因此就需要采用Nginx的授权访问控制功能。
在Java中进行 HTTP 请求是一种常见的编程需求,尤其是在调用第三方API的时候。因此,了解 HTTP 协议的原理、熟悉Apache工具类对此协议的实现至关重要。
HTTP 协议属于应用层协议,同属于应用层协议的还有DNS、FTP等协议。HTTP 是基于TCP的可靠传输协议,采用的是客户端/服务器的(C/S)的工作方式,在 HTTP 的通信过程中,首先由客户端向服务器发起建立链接的请求,通过 TCP三次握手来完成,然后客户端向服务器发出请求,告诉服务器想得到的信息。服务器通过响应返回客户端需要的信息。最后通过 TCP 四次握手关闭链接,从而完成一次基本的通信过程。
由于客户端与服务器有不同的数据交换需求,为了更高效的进行数据交换,HTTP 协议定义了多种不同的请求方法,服务器可以针对不同的请求方式进行优化,从而提高客户端的响应速度和服务器的性能。常见的请求方式有GET, POST, PUT, DELETE等。当需要查询和获取服务器资源时,一般使用GET请求;当需要向服务器提交大量表单数据时,POST则更为常用。
HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。熟悉HttpClient 工具类对我们的项目开发非常的有帮助。