What is the HTTP 444 status code and what does it mean?
444 is a non-standard status code used exclusively by nginx to close a connection without sending any response to the client. The code never reaches the browser, it appears only in nginx logs. Servers use it to silently drop requests they consider malicious or unwanted, like requests with invalid Host headers or patterns matching bots and scrapers. From the client’s side, the connection just disappears. The browser shows something like ERR_EMPTY_RESPONSE, not a “444” page.
Because 444 is nginx-proprietary and not part of any IETF specification, the behavior is specific to the return 444 directive. If you see 444s in your nginx access log for requests you intended to allow, look for return 444 directives in your nginx config, particularly the default server block or location blocks matching your request pattern.
Related articles
All articles →Cloudflare Error 1020: Causes and Fixes (2026)
What triggers Cloudflare Error 1020, and the proxy, header, pacing, and headless-browser techniques that reduce it when scraping.
Web Scraping Without Getting Blocked
To reduce the number of bots using the site, developers use IP address recognition, HTTP request headers checking, CAPTCHA, and other methods to detect bot traffic. With the right approach, you can still collect public data reliably. To do this, you need to follow some rules during scraping.
Axios vs fetch in Node.js
Axios vs the Node.js built-in fetch for web scraping. Covers proxy configuration, retry logic, timeout handling, header control, and behavior under concurrent requests.
Stop debugging blocked requests one by one
HasData handles rotation, rendering, and retries, so most blocked targets come back as data instead of error codes.