运行本地web服务器意味着什么



我可以用RubyonRails/JS/HTML/CSS进行编程和开发,以制作一个全栈应用程序。然而,在我对HTTP请求/响应周期的理解上存在漏洞。以下几点正确吗?

  • 如果我制作了一个Rails应用程序,在命令行上键入rails server,我会得到一个本地服务器,我可以向它发出请求。如果我打开浏览器,键入localhost:3000,然后按enter键,我就会向本地服务器发出HTTP请求
  • Rails默认使用一个名为WEBrick的web服务器,但也有其他服务器,如Thin、Puma和Unicorn。这些都是软件,使它们成为web服务器的原因是该软件实现了处理HTTP请求的功能
  • 当我运行本地web服务器时,这意味着我的计算机正在运行其中一个监听HTTP请求的软件

以上是"运行本地web服务器"的意思吗

  • 我看到了其他"运行本地web服务器"的例子。其中之一是在项目目录中运行npm install -g http-server,然后导航到localhost:8080。这也只是开始运行并在8080端口上接受HTTP请求的软件吗
  • 在Ruby命令行上,安装rack-gem:gem install rack。然后在一个新的Ruby文件中,我们require 'rack',启动一个web服务器:

Rack::Server.start({ app: MySimpleApp, port: 3000 })

然后,我们可以定义一个与机架兼容的web应用程序MySimpleApp(响应call方法的对象):

class MySimpleApp
  def self.call
    (...)
  end
end

所以现在,当我们在浏览器中导航到localhost:3000时,MySimpleApp就会被执行机架只是在运行它的默认WEBrick服务器吗?上面的命令是简单地运行本地web服务器并定义当HTTP请求传入时要做什么(执行MySimpleApp)吗

您的理解基本正确。HTTP只是一种基于文本的协议,和许多协议一样,它通过TCP/IP进行操作。

内置的WEBrick服务器并不是用Ruby编写的HTTP服务器的最佳示例,但它之所以包含在内,是因为它通常"足够好",可以让您开始使用。Pow要好得多,尽管它是由生产Rails的同一家公司生产的,但它主要是用Node编写的。

与许多基于互联网的协议一样,HTTP的美妙之处在于,只要遵守标准,使用什么语言并不重要。

Rack是一个在HTTP后面操作的层,它在请求/响应周期上提供了一个薄薄的抽象层。

服务器是为某种数据传输打开端口(80443880)的东西。端口80是HTTP端口,端口443是HTTPS端口。8080是开发中常用的端口(与3000一样)。https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

根据定义,本地服务器是在您的计算机上运行的服务器。

总的来说,你肯定走在了正确的轨道上。

相关内容

最新更新