AngularSSR只负责渲染初始页面。一旦加载了初始页面,客户端Angular应用程序将接管其余的交互,然后客户可以导航SPA并通过ajax调用后台API。AngularSSR的关键开发点。如何查看网站是http1.1还是http1.0?ngservedev中使用的expressserver:在Chrome开发者工具的网络面板中也可以看到:在响应头区域也可以看到:ConnectionreuseisusingHTTPKeep-alive,HTTP/1.1.通过使用HTTPKeep-alive,一个TCP连接用于顺序处理多个HTTP请求,从而节省了为每个请求打开一个新的TCP连接的时间。但是,每个HTTP请求本身都是独立的,因此不会自动重用身份验证和类似请求。在HTTP1.1中,除非另有说明,否则所有连接都被视为持久连接。HTTP持久连接不使用单独的保持活动消息,它们只允许多个请求使用单个连接。但是,Apachehttpd1.3和2.0的默认连接超时仅为15秒,Apachehttpd2.2及更高版本仅为5秒。短超时的优点是能够快速交付网页的多个组件,而不会消耗资源运行多个服务器进程或线程的时间太长。上图左侧演示了频繁的TCP连接建立和关闭。HttpClient是位于@angular/common/http包中的内置服务类。每个请求都有多个签名和返回类型。它使用基于RxJS的observableapi,这意味着它返回一个observable以及订阅它所需的内容。该API是基于浏览器暴露的XMLHttpRequest接口开发的。关于HttpClient是否是单例的问题:如果您在AppModule的@NgModule({providers:[...]})或AppModule直接或间接导入的模块中提供服务,那么您将获得单例.如果您在@Component(...)中提供服务,您将获得每个组件实例的服务实例。
