An HTTP request using Angular HTTP client is in-fact an RxJS observable of type HttpRequest that produces a stream of notifications of type HttpEvent. If you wish to see all the notifications, use the option observe: 'events' in the request. If this option isn't provided (default), only the last notification (the result from the HTTP request) is returned as seen here.
From docs:
When using HttpClient.request() with an HTTP method, configure the
method with observe: 'events' to see all events, including the
progress of transfers.
Seeing this, your example of of(['a', 'b', 'c']) isn't similar to a HTTP request since it emits only one notification (the array ['a', 'b', 'c']) and completes. However from(['a', 'b', 'c']) is similar to a HTTP request since it emits each item individually.
Is HTTP response one element in Observable stream?
Yes, it is the last notification in the stream of notifications. It is of type HttpEventType.Response.
Working example: Stackblitz
import { Component, OnInit } from '@angular/core';
import { HttpClient, HttpEvent, HttpEventType } from '@angular/common/http';
@Component({ selector: 'app', templateUrl: 'app.component.html' })
export class AppComponent implements OnInit {
events = [];
constructor(private http: HttpClient) { }
ngOnInit() {
this.http.get<any>('https://jsonplaceholder.typicode.com/todos/1', {observe: 'events'}).subscribe((event: HttpEvent<any>) => {
this.events.push(event);
console.log(event);
});
}
}
Console output

type: 0 corresponds to HttpEventType.Sent and type: 4 corresponds to HttpEventType.Response. You could possibly see more events in a more complicated request (eg. a video upload request).