Find insecure http:// resources on an HTTPS page
No mixed content found — every subresource on this page is loaded over HTTPS.
A page delivered over HTTPS is mixed when it still loads some resources over plain HTTP. The padlock disappears and the connection is only partially protected: an attacker on the network can read or modify the insecure resources even though the page itself is encrypted. Browsers treat the two kinds differently. Active mixed content - scripts, iframes, objects, stylesheets and form targets - is blocked outright, so the page usually breaks. Passive mixed content - images, audio, video, fonts and icons - is auto-upgraded to HTTPS where possible, and otherwise loads with a warning; it still leaks requests and marks the page as not fully secure.
https:// - most CDNs and APIs support HTTPS.//host/path) so the page's own scheme is inherited.upgrade-insecure-requests to rewrite remaining HTTP URLs automatically.Strict-Transport-Security so browsers never fall back to HTTP.Mixed content is the single most common reason a site that is correctly configured over HTTPS still fails to get the padlock, and the cause is almost always a hardcoded http:// in a template, an inline style or a third-party widget. Finding those by hand means opening the browser console on every page, and the console only tells you about the page you happen to be looking at.
This tool fetches a page the way a browser would, then walks the returned HTML and reports every reference that would still travel over plain HTTP. It separates the references that browsers block outright from the ones they merely warn about, because those two groups need different fixes and different urgency. Duplicate references are collapsed, and results are capped so a single broken page cannot produce an unreadable list.
https://. A pasted URL with a path is fine and is scanned as-is.grep -rn "http://" --include="*.html" --include="*.css" --include="*.js" . finds candidates; grep -rn "http://" --include="*.go" --include="*.py" . catches hardcoded strings in application code. The biggest offenders are usually inline styles, CSS @import rules and third-party widgets, not your templates.upgrade-insecure-requests does help, because it rewrites insecure URLs to HTTPS before the request is made, but it cannot rescue a host that does not offer HTTPS at all. Fix the references first, then add the directive as a safety net.<script src>, <iframe src>, <object data>, <embed src>, <form action><link rel="stylesheet"> and CSS @importhttp:// originimg, audio, video (src and poster), source, track, inputbackground on body, table and tdicon, apple-touch-icon, mask-icon, manifestpreload, prefetch, preconnect, dns-prefetchsrc, href, poster, data, action and background attributessrcset on img and sourceurl(http://...) inside style attributes and <style> blocks//host/file URLs, resolved against the pagehttp:// after each migration.upgrade-insecure-requests as a safety net.