irpas技术客

iOSwebview加载网页http链接被转到https的问题_zy?_ios webview抓包

大大的周 7106

问题现象 webview访问http的链接被自动转到了https开发的域名中,导致页面访问失败。通过抓包工具发现该页面并未请求http开发的资源而是由iOS的webview自动转到了https开头的域名中。一经出现该问题,后续所有的http开头的相同域名下的网页都无法正常访问,需卸载重装后正常。 问题原因 该域名下存在http和https两种访问方式,如webview访问了https开头的访问链接成功后会自动保存Strict-Transport-Security 状态到浏览器缓存中,导致了后续访问http会被自动转到https。 解决方案 在请求时候添加如下参数 设置 Strict-Transport-Security 为 max-age=0

发送请求时候可以这样改

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:<yourURL>]]; [request setValue:@"max-age=0" forHTTPHeaderField:@"Strict-Transport-Security"];

也可以让服务端在nginx端的配置找到如下类似配置,将mac-age修改为0, 也就是缓存时间未0后每次再访问http就不会被自动重定向到https了。 注意修改完毕后要先访问原https的域名一次刷新下缓存时间才能生效。

$ vim /etc/nginx/conf.d/hi-linux.conf server { listen 443 ssl; server_name ·; add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; ... } server { listen 80; server_name ·; return 301 https://·$request_uri; ... } 参照该博文方案,修改nginx配置 https://blog.csdn.net/u012560410/article/details/86489979


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #iOS #webview抓包