servlet翻译过来就叫服务程序,你可以理解为一个http服务器,rpc服务器,或者别的啥服务器都行。服务程序的核心功能就是接受客户端请求,处理再返回!
说白了 servlet 就是 web 服务共通部分(TCP socket 监听、TLS加解密、HTTP 协议的解析、路由机制的实现、并发处理等)和特殊部分(你的业务逻辑)之间的一层胶水。有了 servlet 这套规约,web 服务器(比如 tomcat)可以专注地做它的共通部分而不用管你的特殊部分,而你则可以专注写你的业务逻辑而不用关心共通部分。其他语言的web框架当然也有这种,只不过不叫 servlet 而已,比如 Ruby 语言的生态里有 Puma(相当于 tomcat)和Rack(相当于servlet API),Elixir 生态里有 cowboy和 Plug 等。
先来说说 HTTP 是什么,其实最常见的 HTTP 请求(文件上传不算)就是一段文本,大概长成下面这样:
POST http://www.example.com/foo/bar?baz=1&qux=haha HTTP/1.0
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 11<