# request/request

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/request-request).**

25,542 stars · 3,150 forks · JavaScript · Apache-2.0

## Links

- GitHub: https://github.com/request/request
- awesome-repositories: https://awesome-repositories.com/repository/request-request.md

## Description

This is an HTTP client library used for sending and receiving network requests. It functions as an HTTP traffic replicator, a multipart form uploader, and an OAuth request signer, while also serving as an HTTP client capable of routing traffic through Unix domain sockets for local inter-process communication.

The project distinguishes itself with the ability to import and parse HTTP Archive JSON files to reproduce recorded network traffic. It also provides cryptographic OAuth signing to secure API access using hashing algorithms and supports routing requests through Unix domain sockets using specialized URI formats.

The library covers a broad range of capabilities including session state management via cookie jars, proxy server routing through tunneling, and the streaming of large payloads to manage memory. It handles secure communication through TLS/SSL configuration and authentication headers, and provides automatic decompression of gzip-encoded response bodies.

## Tags

### Networking & Communication

- [HTTP Client Libraries](https://awesome-repositories.com/f/networking-communication/http-client-libraries.md) — Provides a comprehensive library for sending and receiving HTTP requests with support for various methods and authentication.
- [HTTP Request Dispatchers](https://awesome-repositories.com/f/networking-communication/http-request-dispatchers.md) — Implements mechanisms for sending standard HTTP requests to remote servers and managing the connection lifecycle. ([source](https://cdn.jsdelivr.net/gh/request/request@master/README.md))
- [HTTP Payload Streaming](https://awesome-repositories.com/f/networking-communication/client-side-streaming/http-payload-streaming.md) — Enables processing of large HTTP request and response bodies using readable and writable streams to manage memory. ([source](https://cdn.jsdelivr.net/gh/request/request@master/README.md))
- [HTTP Client Integrations](https://awesome-repositories.com/f/networking-communication/http-client-integrations.md) — Interfaces for executing standard HTTP methods like GET and POST to exchange data with remote servers.
- [Traffic Replication](https://awesome-repositories.com/f/networking-communication/http-traffic-manipulation-tools/traffic-replication.md) — Enables the reproduction of recorded network traffic by importing and parsing HTTP Archive JSON files.
- [Local Interprocess Communication](https://awesome-repositories.com/f/networking-communication/local-interprocess-communication.md) — Facilitates communication between different processes on the same host using Unix domain sockets.
- [Unix Domain Socket Support](https://awesome-repositories.com/f/networking-communication/unix-domain-socket-support.md) — Supports network communication using local Unix domain sockets instead of TCP/IP for inter-process communication. ([source](https://cdn.jsdelivr.net/gh/request/request@master/README.md))
- [URI Scheme Routing](https://awesome-repositories.com/f/networking-communication/unix-domain-socket-support/uri-scheme-routing.md) — Translates specialized URI formats into Unix domain socket connections for low-latency local communication.
- [Custom Request Headers](https://awesome-repositories.com/f/networking-communication/api-integration-frameworks/http-client-libraries/http-client-configurations/custom-request-headers.md) — Provides capabilities for injecting user-defined metadata into HTTP request headers. ([source](https://cdn.jsdelivr.net/gh/request/request@master/README.md))
- [HAR Network Mocking](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-infrastructure-configuration/network-management/http-interaction-utilities/har-network-mocking.md) — Allows recording and replaying network traffic using HTTP Archive files for simulation and testing. ([source](https://cdn.jsdelivr.net/gh/request/request@master/README.md))

### Data & Databases

- [Large Data Streamers](https://awesome-repositories.com/f/data-databases/large-data-streamers.md) — Implements memory-efficient streaming of large network payloads to files or pipes.

### Security & Cryptography

- [API Request Signing](https://awesome-repositories.com/f/security-cryptography/signature-verification-tools/outgoing-request-signing/hmac-sha256-data-signers/api-request-signing.md) — Signs API requests using cryptographic hashing algorithms to authenticate and authorize calls.
- [API Access Security](https://awesome-repositories.com/f/security-cryptography/api-access-security.md) — Secures API access using cryptographic OAuth signing, TLS certificates, and authentication headers.
- [Cookie Management](https://awesome-repositories.com/f/security-cryptography/cookie-management.md) — Maintains session state by storing and retrieving HTTP cookies across consecutive network requests. ([source](https://cdn.jsdelivr.net/gh/request/request@master/README.md))
- [Client-Side Request Authentication](https://awesome-repositories.com/f/security-cryptography/domain-access-restrictions/request-access-restrictions/client-side-request-authentication.md) — Provides mechanisms to add authentication credentials and security headers to outgoing network requests. ([source](https://cdn.jsdelivr.net/gh/request/request@master/README.md))
- [TLS/SSL Configurations](https://awesome-repositories.com/f/security-cryptography/security/cryptography-and-secrets/cryptographic-primitives-management/tls-ssl-configurations.md) — Enables secure encrypted communication by providing client certificates and keys during the TLS/SSL handshake. ([source](https://cdn.jsdelivr.net/gh/request/request@master/README.md))
- [Outgoing Request Signing](https://awesome-repositories.com/f/security-cryptography/signature-verification-tools/outgoing-request-signing.md) — Provides cryptographic signing of outbound HTTP requests to ensure authenticity and integrity via OAuth.

### Programming Languages & Runtimes

- [HAR File Parsers](https://awesome-repositories.com/f/programming-languages-runtimes/type-annotations/request-parameter-parsing/http-request-file-parsers/har-file-parsers.md) — Converts HTTP Archive JSON objects into executable request configurations to reproduce recorded network traffic.

### Testing & Quality Assurance

- [Network Testing](https://awesome-repositories.com/f/testing-quality-assurance/api-network-testing/network-testing.md) — Replays recorded network traffic from HAR files to validate API and service communication.

### Web Development

- [Multipart Uploads](https://awesome-repositories.com/f/web-development/form-data-support/multipart-uploads.md) — Supports client-side encoding of multipart/form-data bodies for file uploads and complex form submissions. ([source](https://cdn.jsdelivr.net/gh/request/request@master/README.md))
