小结

目录


Alluxio


参考文章

  • Alluxio是一个基于内存的分布式文件系统,它是架构在底层分布式文件系统和上层分布式计算框架之间的一个中间件,主要职责是以文件形式在内存或其它存储设施中提供数据的存取服务。
  • 在大数据领域,最底层的是分布式文件系统,如Amazon S3、Apache HDFS等,而较高层的应用则是一些分布式计算框架,如Spark、MapReduce、HBase、Flink等,这些分布式框架,往往都是直接从分布式文件系统中读写数据,效率比较低,性能消耗比较大。而如果我们将其架构与底层分布式文件系统与上层分布式计算框架之间,以文件的形式在内存中对外提供读写访问服务的话,那么Alluxio可以为那些大数据应用提供一个数量级的加速,而且它只要提供通用的数据访问接口,就能很方便的切换底层分布式文件系统。

Scalatra


  • scala的四种web框架之一,是一种特别小巧的Web框架,也是受Sinatra影响,帮助你建立高可访问性的网站和API,Scalatra是简单的 HTTP DSL ,只要你输入一点点代码,加入额外的库包就可以。
  • 没有找到什么好的文章,这里暂时空缺。

Jetty


  • Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。
  • 可以把他当成tomcat的轻量级版本
  • 可以参考这篇文章

Web服务器


这里写图片描述

  • Web服务器使用HTTP协议来传输数据。最简单的一种情况是,用户在浏览器(客户端,client)中输入一个URL(如,www.programcreek.com/static.html),然后就能获取网页进行阅览。因此,服务器完成的工作就是发送网页至客户端。传输过程遵循HTTP协议,它指明了请求(request)消息和响应(response)消息的格式。

Servlet容器


这里写图片描述

  • Servlet容器的基本思想是在服务器端使用Java来动态生成网页。因此,Servlet容器是Web服务器和servlet进行交互的必不可少的组件。
  • 什么是servlet: Servlet是在javax.serlvet包中定义的一个接口。它声明了servlet生命周期中必不可少的三个方法-init()、service()和destroy()。每个servlet(无论是在SDK中定义的,或是自定义的)都必须实现这三个方法,而且由服务器在特定的时刻调用。

    • init()方法在servlet生命周期的初始化阶段被调用。它传递一个实现了javax.servlet.ServletConfig接口的对象,使得servlet能够从web application中获取初始化参数。
    • servlet初始化收,每接收一个请求,就会调用service()方法。每个请求的处理都在独立的线程中进行。Web服务器对每个请求都会调用一次service()方法。service()方法判断请求的类型,并把它转发给相应的方法进行处理。
    • 当需要销毁servlet对象时,就要调用destroy()方法。该方法释放被占用的资源。
  • 和所有的Java程序一样,servlet运行在JVM中。引入servlet容器是为了处理复杂的HTTP请求。Servlet容器负责servlet的创建、执行和销毁。

Servlet容器和Web服务器如何处理一个请求?


1. Web服务器接收到HTTP请求

2. Web服务器将请求转发给servlet容器

3. 如果容器中不存在所需的servlet,容器就会检索servlet,并将其加载到容器的地址空间中

4. 容器调用servlet的init()方法对servlet进行初始化(该方法只会在servlet第一次被载入时调用)

5. 容器调用servlet的service()方法来处理HTTP请求,即,读取请求中的数据,创建一个响应。servlet会被保留在容器的地址空间中,继续处理其他的HTTP请求

6. Web服务器将动态生成的结果返回到正确的地址。

什么是context


  • 最近经常看到这个词,对他很多的定义也很模糊,这里贴上他的英文解释并附上我自己的理解

     A naming service associates names with objects. An association between a name and an
     object is called a binding, and a set of such bindings is called a context. A name in a
     context can be bound to another context that uses the same naming conventions; the
     bound context is called a subcontext. For example, in a filesystem, a directory (such as
     /temp) is a context that contains bindings between filenames and objects that the system
     can use to manipulate the files (often called file handles). If a directory contains a binding
     for another directory (e.g., /temp/javax), the subdirectory is a subcontext. 
    
  • 这里的描述是,context是一组名称和对象的绑定,我们可以通过这段描述里的例子来理解,里面的例子是目录,我觉得就很形象,我们可以将其理解为一个环境或者干脆就理解为一个目录。
  • Web应用范围内存取共享数据;访问web应用的静态资源;Servlet对象之间通过ServletContext对象来实现通讯。
  • 这里想码上一篇写的很好的文章,介绍servlet、servletcontext、servletconfig的,please click me~

session 和 cookies


cookie 和session 的区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、所以个人建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值