Making HTTP requests from a container with no curl
📰 Dev.to · Schiff Heimlich
Learn how to make HTTP requests from a container without curl using Bash's TCP capabilities
Action Steps
- Use Bash to establish a TCP connection to a host and port using exec 3<>/dev/tcp/example.com/80
- Send an HTTP request using echo -e 'GET / HTTP/1.0 Host: example.com ' >&3
- Read the response using cat <&3
- Apply this technique to debug or test API endpoints in a containerized environment
Who Needs to Know This
DevOps and sysadmin teams can benefit from this technique when debugging containerized applications
Key Insight
💡 Bash's /dev/tcp/ pseudo-device allows for TCP connections, enabling HTTP requests without curl
Share This
🚀 Did you know Bash can make HTTP requests without curl? 🤯 Learn how to use /dev/tcp/ to debug your containerized apps #devops #sysadmin
Key Takeaways
Learn how to make HTTP requests from a container without curl using Bash's TCP capabilities
Full Article
Title: Making HTTP requests from a container with no curl
URL Source: https://dev.to/schiff_heimlich/making-http-requests-from-a-container-with-no-curl-2geb
Published Time: 2026-06-24T17:02:41Z
Markdown Content:
[Skip to content](https://dev.to/schiff_heimlich/making-http-requests-from-a-container-with-no-curl-2geb#main-content)
[](https://dev.to/)
[Powered by Algolia](https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral)
[Log in](https://dev.to/enter?signup_subforem=1)[Create account](https://dev.to/enter?signup_subforem=1&state=new-user)
## DEV Community
0 Add reaction
0 Like 0 Unicorn 0 Exploding Head 0 Raised Hands 0 Fire
0 Jump to Comments 0 Save Boost
Copy link
Copied to Clipboard
[Share to X](https://twitter.com/intent/tweet?text=%22Making%20HTTP%20requests%20from%20a%20container%20with%20no%20curl%22%20by%20Schiff%20Heimlich%20%23DEVCommunity%20https%3A%2F%2Fdev.to%2Fschiff_heimlich%2Fmaking-http-requests-from-a-container-with-no-curl-2geb)[Share to LinkedIn](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fdev.to%2Fschiff_heimlich%2Fmaking-http-requests-from-a-container-with-no-curl-2geb&title=Making%20HTTP%20requests%20from%20a%20container%20with%20no%20curl&summary=You%20SSH%20into%20a%20minimal%20container%20image%20to%20debug%20something%2C%20and%20curl%20isn%E2%80%99t%20there.%20Neither%20is%20wget.%20You...&source=DEV%20Community)[Share to Facebook](https://www.facebook.com/sharer.php?u=https%3A%2F%2Fdev.to%2Fschiff_heimlich%2Fmaking-http-requests-from-a-container-with-no-curl-2geb)[Share to Mastodon](https://s2f.kytta.dev/?text=https%3A%2F%2Fdev.to%2Fschiff_heimlich%2Fmaking-http-requests-from-a-container-with-no-curl-2geb)
[Share Post via...](https://dev.to/schiff_heimlich/making-http-requests-from-a-container-with-no-curl-2geb#)[Report Abuse](https://dev.to/report-abuse)
[](https://dev.to/schiff_heimlich)
[Schiff Heimlich](https://dev.to/schiff_heimlich)
Posted on Jun 24
# Making HTTP requests from a container with no curl
[#devops](https://dev.to/t/devops)[#sysadmin](https://dev.to/t/sysadmin)[#containers](https://dev.to/t/containers)
You SSH into a minimal container image to debug something, and `curl` isn’t there. Neither is `wget`. You need to check if an endpoint is reachable or poke at an API, and you are stuck.
Bash can actually do TCP directly. It’s been able to since Bash 2.0-something.
## [](https://dev.to/schiff_heimlich/making-http-requests-from-a-container-with-no-curl-2geb#the-trick) The trick
```
exec 3<>/dev/tcp/example.com/80
echo -e "GET / HTTP/1.0\r\nHost: example.com\r\n\r\n" >&3
cat <&3
```
`/dev/tcp/` is a bash-specific pseudo-device. Opening it sets up a TCP connection to the host and port you specify. The first line opens file descriptor 3 for read-write on that socket. You write your H
URL Source: https://dev.to/schiff_heimlich/making-http-requests-from-a-container-with-no-curl-2geb
Published Time: 2026-06-24T17:02:41Z
Markdown Content:
[Skip to content](https://dev.to/schiff_heimlich/making-http-requests-from-a-container-with-no-curl-2geb#main-content)
[](https://dev.to/)
[Powered by Algolia](https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral)
[Log in](https://dev.to/enter?signup_subforem=1)[Create account](https://dev.to/enter?signup_subforem=1&state=new-user)
## DEV Community
0 Add reaction
0 Like 0 Unicorn 0 Exploding Head 0 Raised Hands 0 Fire
0 Jump to Comments 0 Save Boost
Copy link
Copied to Clipboard
[Share to X](https://twitter.com/intent/tweet?text=%22Making%20HTTP%20requests%20from%20a%20container%20with%20no%20curl%22%20by%20Schiff%20Heimlich%20%23DEVCommunity%20https%3A%2F%2Fdev.to%2Fschiff_heimlich%2Fmaking-http-requests-from-a-container-with-no-curl-2geb)[Share to LinkedIn](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fdev.to%2Fschiff_heimlich%2Fmaking-http-requests-from-a-container-with-no-curl-2geb&title=Making%20HTTP%20requests%20from%20a%20container%20with%20no%20curl&summary=You%20SSH%20into%20a%20minimal%20container%20image%20to%20debug%20something%2C%20and%20curl%20isn%E2%80%99t%20there.%20Neither%20is%20wget.%20You...&source=DEV%20Community)[Share to Facebook](https://www.facebook.com/sharer.php?u=https%3A%2F%2Fdev.to%2Fschiff_heimlich%2Fmaking-http-requests-from-a-container-with-no-curl-2geb)[Share to Mastodon](https://s2f.kytta.dev/?text=https%3A%2F%2Fdev.to%2Fschiff_heimlich%2Fmaking-http-requests-from-a-container-with-no-curl-2geb)
[Share Post via...](https://dev.to/schiff_heimlich/making-http-requests-from-a-container-with-no-curl-2geb#)[Report Abuse](https://dev.to/report-abuse)
[](https://dev.to/schiff_heimlich)
[Schiff Heimlich](https://dev.to/schiff_heimlich)
Posted on Jun 24
# Making HTTP requests from a container with no curl
[#devops](https://dev.to/t/devops)[#sysadmin](https://dev.to/t/sysadmin)[#containers](https://dev.to/t/containers)
You SSH into a minimal container image to debug something, and `curl` isn’t there. Neither is `wget`. You need to check if an endpoint is reachable or poke at an API, and you are stuck.
Bash can actually do TCP directly. It’s been able to since Bash 2.0-something.
## [](https://dev.to/schiff_heimlich/making-http-requests-from-a-container-with-no-curl-2geb#the-trick) The trick
```
exec 3<>/dev/tcp/example.com/80
echo -e "GET / HTTP/1.0\r\nHost: example.com\r\n\r\n" >&3
cat <&3
```
`/dev/tcp/` is a bash-specific pseudo-device. Opening it sets up a TCP connection to the host and port you specify. The first line opens file descriptor 3 for read-write on that socket. You write your H
DeepCamp AI