工信部备案首页 http://beian.miit.gov.cn/ 是怎么自动跳转到 HTTPS 的?

http://beian.miit.gov.cn/

~ $ curl -v http://beian.miit.gov.cn/
*   Trying 116.211.155.229...
* TCP_NODELAY set
* Connected to beian.miit.gov.cn (116.211.155.229) port 80 (#0)
> GET / HTTP/1.1
> Host: beian.miit.gov.cn
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 521
< Server: nginx
< Date: Tue, 24 Nov 2020 07:11:17 GMT
< Transfer-Encoding: chunked
< Connection: keep-alive
< X-Via-JSL: c846d58,-
< Connection: close
< Set-Cookie: __jsluid_h=ae2c3fe093587147da8eb4951e70ad8e; max-age=31536000; path=/; HttpOnly
<
* Closing connection 0
<script>document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('=')+(-~[]+'')+([2]*(3)+'')+(~~false+'')+([2]*(3)+'')+(-~1+'')+(~~false+'')+(-~[]+'')+(2+6+'')+(1+6+'')+(2+5+'')+('.')+([2]*(3)+'')+(4+'')+(1+1+'')+('|')+('-')+(-~[]+'')+('|')+('%')+(-~1+'')+('F')+('N')+('X')+('s')+('d')+('r')+('B')+('F')+('C')+('V')+(1+2+'')+('A')+('U')+('d')+('x')+(-~(4)+'')+('L')+('c')+(1+2+'')+('K')+(3+6+'')+('x')+('b')+('h')+('x')+('W')+('o')+('%')+(1+2+'')+('D')+(';')+('m')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+((1+[2]>>2)+'')+(2+4+'')+(~~''+'')+((+false)+'')+(';')+('p')+('a')+('t')+('h')+('=')+('/');location.href=location.pathname+location.search</script>%
~ $

Chrome 显示第 6 次请求才跳转到 HTTPS,明明 2 次就够了,到底在干啥呢?检查客户端支不支持持 HTTPS 么?How?

<script>...;location.href=location.pathname+location.search</script>

这行代码会产生一个重定向操作。

前几次请求,每次都返回不同的代码(第二次尤为复杂,代码加密过,看不出是在干啥,判断是否支持 HTTPS 应该不需要如此):

执行完了再重定向。直到最近一次,才返回 https 地址:

我还以为这些跳转都是在后端用apache或者nginx实现的呢,没想到居然还用前端跳转

不清楚,反正没看懂在干啥。第一次请求

document.cookie=... location.href=location.pathname+location.search

设置了 cookie 然后刷新了页面(没有跳转到 HTTPS)。第三次请求才返回 308 重定向。