第一种是会发起一次 HTTP 以及一次 HTTPS:当你访问 HTTP URL,会发起一个普通的 HTTP 请求,服务器通过某些配置,会返回一个 301 状态码,并 Location 到对应的 HTTPS URL 上。浏览器接着重定向,发起 HTTS 请求。需要补充的是,当你后面再次访问这个 HTTP 请求时,因为存在浏览器缓存,可能直接在浏览器端就重定向了,这样的话只有一个 TCP 请求。不过由于 HTTP -> HTTPS 重定向的过程是存在安全隐患的,中间人可以以这个 HTTP 请求为突破口,让你的 HTTPS 无用武之地。因此大家搞了一个协议,叫做 Strict-Transport-Security (HSTS)。大致意思是如果服务器在 HTTPS 请求里返回了 Strict-Transport-Security 响应头,那么后面浏览器只能通过 HTTPS 请求访问这个域名的 URL。如果用户访问了对应的 HTTP URL,浏览器会自动切换到 HTTPS URL,只会有 443,没有 80.不过理论上这样也有隐患,那就是第一次访问某个域名,而且使用的又是 HTTP,浏览器没有相应的 HSTS 记录,所以还是会发起一次 HTTP 请求,如果正好这个时候有中间人,就不安全了。所以 Chrome 等浏览器还会预置一批 HSTS 域名名单。
端口号标识了一个主机上进行通信的不同的应用程序。
1,HTTP服务器,默认端口号为80/tcp(木马Executor开放此端口)
2,HTTPS(securely transferring web pages)服务器,默认端口号为443/tcp 443/udp
3,HTTP协议代理服务器常用端口号:80/8080/3128/8081/9098
4,SOCKS代理协议服务器常用端口号:1080
5,FTP(文件传输)协议代理服务器常用端口号:21
6,Telnet(远程登录)协议代理服务器常用端口号:23
7,Telnet(不安全的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口)
8,FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口)
9,TFTP(Trivial File Transfer Protocol),默认端口号为69/udp
10,SSH(安全登录)、SCP(文件传输)、端口号重定向,默认的端口号为22/tcp
SMTP Simple Mail Transfer Protocol(E-mail),默认端口号为25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口)
POP3 Post Office Protocol(E-mail),默认端口号为110/tcp
Webshpere应用程序,默认端口号为9080
webshpere管理工具,默认端口号9090
JBOSS,默认端口号为8080
TOMCAT,默认端口号为8080
WIN2003远程登录,默认端口号为3389
Symantec AV/Filter for MSE,默认端口号为 8081
Oracle 数据库,默认的端口号为1521
ORACLE EMCTL,默认的端口号为1158
Oracle XDB(XML 数据库),默认的端口号为8080
Oracle XDB FTP服务,默认的端口号为2100
MS SQL*SERVER数据库server,默认的端口号为1433/tcp 1433/udp
MS SQL*SERVER数据库monitor,默认的端口号为1434/tcp 1434/udp