发表于: 2017-07-22 19:16:28

3 1257


一.今天完成的主要事情

1.在服务器上将jetty的启动添加到linux服务中,这样师兄就可以在任何时候查看验收结果,但是离linux脚本式启动的要求还没达到.

做法也很简单,就是将新建立一个jetty服务,使它能够像普通的linux服务一样被管理调用.

 cp /jetty安装目录/jetty-distribution-9.3.1-SNAPSHOT/bin/jetty.sh /etc/init.d/jetty 

# echo "JETTY_HOME=/opt/jetty/jetty-distribution-9.3.1-SNAPSHOT" > /etc/default/jetty 

# echo "JETTY_BASE=/opt/web/mybase" >> /etc/default/jetty 

# echo "TMPDIR=/opt/jetty/temp" >> /etc/default/jetty

其中JETTY_HOME是jetty的默认安装目录,JETTY_BASE是你自己的web应用的基目录

配置完毕后可以通过service jetty status测试配置结果,如果配置成功的话可以看到各个环境变量的值

如果测试不成功,通常是因为配置时三个目录配置有问题,可以通过vim /etc/default/jetty来查看三个环境变量的值,如果不对,可以直接修改,一般修改完之后就可以了.

2.完成深度思考

1.     什么是restful

REST全称是Representational State Transfer, 即表现层状态转移,意思是将互联网上的所有东西都看作资源,资源有各种表现形式,我们对资源的操作可以看成是资源的某种状态的变化,客户端对资源的操作都是通过HTTP请求完成的.REST指的是一组架构约束条件和原则,如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。Restful风格的接口有几个主要特点:

    1.    每一个URI代表一种资源.比如说数据库中的一条数据,就可以说是一种资源,并且在资源中还可以有和其他资源的联系

    2.    客户端和服务器之间,传递这种资源的某种表现形式.比如说客户端访问服务器上的某个资源,如果是以html格式传递,那么传递来的就是以html形式表现,就可以在浏览器上显示,如果是以json格式传递,那么传递来的就是以json形式表现.

    3.    客户端通过标准方法,对服务器端资源进行操作,实现”表现层状态转化”.即GET,POST,PUT,DELETE请求,分别对应数据库操作的CRUD来对资源进行操作

    4.    无状态通信.意思是RESTful风格的接口的核心是资源,而不是动作,所以上一次的操作和这一次的操作之间没有关系,上一次的操作不会影响到这一次的操作.

2.    maven中的moudle

        module的意思就是模块,我的理解就是当进行团队开发时,每个人负责一个项目中的不同模块,每个子模块会创建一个工程,当各个模块开发完毕,需要聚合在一起时,这些模块就可以通过maven中的moudle进行管理,比如说,可以在父模块中的moudle中声明它的子模块,然后在子模块中说明,子模块可以使用父模块中的依赖.这样,有助于理清模块和模块之间的关系,并且定义相同的标准,有利于团队合作.

3.     rest的请求方法有哪些,有什么区别?

        常用的是GET,POST,PUT,DELETE四种方法,get方法用于获取资源,可类比于数据库操作中的select;post方法用于新建资源,,也可以用于更新资源,类比于数据库操作中的insert,put方法用于更新资源,可类比于数据库操作中的update;delete用于删除资源,可类比于数据库中的delete操作.其中需要注意的是GET,PUT,DELETE方法应该是幂等性的,即多个相同请求返回相同结果,意思就是如果一次操作没有成功,我们可以再发送一次请求,这都没有关系.比如说我们对同一资源查询,更新删除多次都可以,但是post不是幂等性的.因为多个post请求不能返回相同的结果.

4.     什么是http协议?Get和post请求有什么区别?http请求content-Type有几种,有什么区别?http请求的三次握手具体指什么?http适合什么场景?什么是tcp/ip协议?http状态码有哪些?

        HTTP协议:超文本传输协议,是一个属于网络中应用层的一些.个人理解就是网络上的主机之间在应用层通过HTTP协议传输数据,客户端向服务器请求服务时,只传送请求方法和路径,因为HTTP协议简单,所以通信速度快.HTTP协议允许传送任意类型的数据,对于数据的解释都交给了服务器和客户端,HTTP就只负责传送数据,所以更加灵活,速度也更快.HTTP协议是无连接,无状态的,意思是每次链接就只处理一次请求,处理完毕之后就断开链接,这种方式不会过多的占用网络资源.我的理解就是HTTP协议是一个专业的快递员,负责在客户端和服务器之间传递数据,它不管你交给它的数据类型,一次就只干一项任务,所以传输速度非常快.

        get请求是幂等性的,而post不是, get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址.用户看不到这个过程.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制.get安全性非常低,post安全性较高.

        Content-type是内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件.包括ApplicationType,TextType,AudioType,VideoType,ImageType,MessageType,DrawingType,JavaType和OtherType几种类型.区别就是不同的类型决定数据在浏览器中以什么样的形式表现出来,前面说过,http传送数据时问数据是什么格式的,所以客户端和服务器需要知道如何解析数据,countent-   type就决定数据的解析格式.
        http在传输层使用的协议是TCP/IP协议,tcp协议是可靠的传输,保证数据完整,有序的传输到对方,为了保证传输数据的有效性,TCP/IP协议要通过三次握手确定和对方建立起了有效的链接.具体就是第一次握手,A向B发送请求要求链接,B收到请求后返回一个确认联机信息,是收到的联机请求码加1,这是第二次握手,A收到B发送过来的确认信息,查看包的编号是否是自己刚才发过去的包的编号加1,如果是则证明可靠的链接已经建立,这是第三次握手,如果不是或者超时,则A会重发请求.
        HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码,以1开头的通常表示消息,表示请求已经被接受,需要继续处理.以2开头的表示请求已经成功的被服务器接收,理解,接受;以3开头的表示请求被重定向到其他的位置,后续的请求地址在本次响应的Location域中指明.以4开头的表示客户端看起来可能发生了错误,妨碍了服务器的处理,比如常见的404错误,表示客户端请求的资源没有在服务器上发现;以5,6开头的表示服务器在处理请求的过程中有错误或者异常状态发生.我们一般会根据http的状态码来大致判断错误类别.

3.通过svn管理项目

下载安装了IDEA,通过IDEA链接到学院svn上,在svn中建立了自己的trunk,然后把task2的项目代码上传到svn上,同时还下载下来了其他的师兄的代码做参考.

二.明天计划的事情

1.学习linux脚本的相关知识,用真正的脚本来启动,关闭jetty服务

2.学习Nginx相关知识

三.遇到的问题

暂无

四.收获

对http和restful风格的理解更加深入

从此之后也加入IDEA

 最后,师兄可以审核任务了,这个链接是直接在浏览器上查看成果

http://120.77.169.243:8080/a/user/list

还有一个url采用的json数据交互,可以在postmain上测试

http://120.77.169.243:8080/a/student/list[/a/student/id/1],list可以测试get和post,id可以测试get,put,delete

http://120.77.169.243:8080/a/user/list


返回列表 返回列表
评论

    分享到