1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//! Backends and the clients they hand out.
//!
//! A [`Backend`] is shared by the whole crawl and hands out one [`Client`]
//! per request: an HTTP client, a pooled browser session, or anything else
//! that turns a [`Request`] into a [`Response`].
use Future;
use Bytes;
pub use Noop;
pub use StatusPolicy;
use crateResult;
use crate;
/// Hands out a [`Client`] for every request of a crawl.
/// Loads the page of the one [`Request`] it is handed out for.
///
/// [`fetch`](Self::fetch) sends the request, or navigates to it, and returns
/// the response's head: its status, headers and final URI.
/// [`body`](Self::body) then returns the page's content: the bytes received
/// for an HTTP client, or the page as currently rendered for a browser.
/// [`Context`](crate::Context) fetches once and keeps the head; a failed
/// fetch may be tried again.