重定向

打开浏览器输入url会发生什么

守給你的承諾、 提交于 2019-12-29 00:35:11
1. 我们在浏览器中输入网址。 2. 浏览器查找域名对应的IP地址 DNS查找过程为: 浏览器缓存->系统缓存->路由器缓存->ISP DNS缓存->递归搜索 递归搜索过程为:从根域名服务器到顶级域名服务器到你查询的域名服务器。 3. 浏览器打开TCP连接(默认端口为80),向该IP的服务器发送一条HTTP请求,如果浏览器存储了该域名下的cookie,那么cookie也会放入http请求中 4. 服务器给浏览器进行一个301永久重定向响应。该IP对应的服务器很可能是代理服务器,比如你输入“ http://baidu.com ”,而不是“ http://www.baidu.com ”,按道理这两个网址对应的是同一个网页,因此通过代理服务器的方式进行重定向相应,让这两个网址访问的是同一个网页。 5. 浏览器根据重定向地址再次进行HTTP请求。 6. 服务器分析HTTP请求,生成HTTP响应,将响应发给客户端。 7. 浏览器收到响应内容之后,生成主页框架,同时向服务端继续发送请求,请求的内容是主页里的一些资源,比如说图片、视频等。 8. 对于静态的页面内容,浏览器通常进行缓存,对于动态的内容通常不缓存,缓存的时间也是有期限的。 9. 浏览器向服务器发送异步请求,因为有些页面显示完成之后客户端仍需要与服务端保持联系。 10. 整个过程结束之后,浏览器关闭TCP连接。 来源: https:/

Spring MVC页面重定向实例

自古美人都是妖i 提交于 2019-12-29 00:29:38
以下内容引用自 http://wiki.jikexueyuan.com/project/spring/mvc-framework/spring-page-redirection-example.html : 例子: pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.jsoft.testspring</groupId> <artifactId>testmvcredirect</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>testmvcredirect Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency>

CURL基础

青春壹個敷衍的年華 提交于 2019-12-28 15:01:30
下载单个文件: #下载单个文件,默认将输出打印到标准输出中(STDOUT)中curl http://www.centos.org # 将文件下载到本地并命名为mygettext.html curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html # 将文件保存到本地并命名为gettext.html curl -O http://www.gnu.org/software/gettext/manual/gettext.htm#同样可以使用转向字符">"对输出进行转向输出 同时获取多个文件: curl -O URL1 -O URL2 /** * 若同时从同一站点下载多个文件时,curl会尝试重用链接(connection)。 * 通过-L选项进行重定向 * 默认情况下CURL不会发送HTTP Location headers(重定向).当一个被请求页面移动到另一个站点时,会发送一个HTTP Loaction header作为请求,然后将请求重定向到新的地址上。**/ #例如:访问google.com时,会自动将地址重定向到google.com.hk上。 curl http://www.google.com <HTML> <HEAD> <meta http-equiv="content

[转帖]HSTS详解

萝らか妹 提交于 2019-12-28 08:02:35
https://www.jianshu.com/p/caa80c7ad45c 1. 缘起:启用HTTPS也不够安全 有不少网站只通过HTTPS对外提供服务,但用户在访问某个网站的时候,在浏览器里却往往直接输入网站域名(例如 www.example.com ),而不是输入完整的URL(例如 https://www.example.com ),不过浏览器依然能正确的使用HTTPS发起请求。这背后多亏了服务器和浏览器的协作,如下图所示。 图1:服务器和浏览器在背后帮用户做了很多工作 简单来讲就是,浏览器向网站发起一次HTTP请求,在得到一个重定向响应后,发起一次HTTPS请求并得到最终的响应内容。所有的这一切对用户而言是完全透明的,所以在用户眼里看来,在浏览器里直接输入域名却依然可以用HTTPS协议和网站进行安全的通信,是个不错的用户体验。 一切看上去都是那么的完美,但其实不然,由于在建立起HTTPS连接之前存在一次明文的HTTP请求和重定向(上图中的第1、2步),使得攻击者可以以中间人的方式劫持这次请求,从而进行后续的攻击,例如窃听数据,篡改请求和响应,跳转到钓鱼网站等。 以劫持请求并跳转到钓鱼网站为例,其大致做法如下图所示: 图2:劫持HTTP请求,阻止HTTPS连接,并进行钓鱼攻击 第1步:浏览器发起一次明文HTTP请求,但实际上会被攻击者拦截下来 第2步:攻击者作为代理

5.ICMPv4协议分析与实践

孤人 提交于 2019-12-28 04:42:37
ICMPv4 协议分析与实践 1. 概述 1.1 ICMP 简介 ICMP(Internet Control Message Protocol) : 用于 IP 中发送控制消息( 不可靠 ),提供可能发生在通信环境中的各种问题反馈,通常用于返回的错误信息或是分析路由。 依靠 IP 完成任务,但一般不用于在两点之间传输数据,通常不由网络程序直接使用,除了 ping 和 traceroute 1.2 ICMPv4 报文格式 类型 说明 代码 3 目的不可达消息 0 网络不可达 1 主机不可达 2 协议不可达 3 端口不可达 4 需要分片,但是设置了 DF 5 源路由失败 5 重定向消息 0 对网络重定向 1 对主机重定向 2 对服务类型和网络重定向 3 对服务类型和主机重定向 8/0 ping 请求和 ping 应答 11 超时消息 0 传输超时,即 TTL 为 0(tracetoute 原理) 1 分片重组超时,重组定时器超时了,还有分片没到达 12 参数问题消息 0 IP 首部有问题,包括各种差错 1 缺少必需的选项(已废弃) 2 长度错误,总长度无效 1.3 不会产生 ICMPv4 报文的情况 源地址不是单个主机的数据报,即零地址、回环地址、广播地址或组播地址 目的地址是 IPv4 广播或组播地址 ICMPv4 差错报文 不是第一个分片的其他分片 作为链路层广播的数据报 2.

CSFB技术原理

和自甴很熟 提交于 2019-12-28 02:54:52
1.1 CSFB语音业务互操作原理 1.1.1 CSFB的技术原理 CSFB(CS Fallback)是3GPP R8中CS over PS研究课题之一,其背景是由于LTE和2G/3G双模终端是Single-radio模式,也就是具有LTE和2G/3G接入能力的双模或者多模终端,在使用LTE接入时,无法收、发2G/3G电路域业务信号。 在LTE/EPC网络建网初期,在已有成熟的GERAN/UTRAN网络的情况下,出于对CS投资的保护和LTE/EPC的部署策略,可以采用原有的CS域语音方案来提供语音服务,而LTE/EPC仅处理数据业务(包括IMS数据业务)。为了使得终端在LTE接入下能够发起话音等CS业务,接收到话音等CS业务的寻呼,并且能够对终端在LTE接入下正在进行的PS业务进行正确地处理,因此产生了CSFB技术。 CSFB技术中,在LTE和2G/3G的双覆盖区域,对话音、LCS和补充业务,LTE/EPC网络能触发终端从LTE接入回退到2G/3G网络接入并进行CS业务。需要注意的是,只有在E-UTRAN与UTRAN/GERAN的重叠区域,并且用户也具有CSFB功能的时候,CSFB技术才能使用。 为了支持CS Fallback功能,在LTE网络结构中新增加了一个接口SGs。SGs是位于MME和MSC Server之间的接口,用来处理EPS和CS域之间的移动性管理和寻呼流程

shell脚本学习4-输入和输出

两盒软妹~` 提交于 2019-12-27 05:11:16
上一节讲了shel的循环语句,本节介绍shell的输入和输出。输入包括命令行的输入和键盘或文件的输入,输出主要讲解输出重定向。 1. shell的输入 1.1 读取命令行中参数 shell脚本通过美元符号读取命令行中的参数,比如$0表示程序名,$1表示第一个参数,$2表示第二个参数,${10}表示表示第10各参数,以此类推。建立脚本test34.sh如下: #/bin/bash total=$[ $1 * $2 + $3 ] echo "$1 * $2 + $3 = $total" 运行如下: ./test34.sh 4 5 6 结果如下: 4 * 5 + 6 = 26 1)注意,当把字符串输入给shell脚本的时候,注意是以空格作为分隔符,如果字符串本身就有空格的话,那么用双引号或者单引号。举例脚本test35.sh如下: #/bin/bash echo "$1 is pretty nice!" 运行如下: ./test35.sh "wu lin wai zhuan" 结果如下: wu lin wai zhuan is pretty nice! 2) 注意,$0是程序名,这个程序名是运行时输入的完整路径,而不是文件名。比如下面的test36.sh脚本: #/bin/bash echo "shell path is $0" 运行输入: bash shell/test36.sh

Linux实战教学笔记09:通配符

China☆狼群 提交于 2019-12-27 03:40:23
第九节 通配符 标签(空格分隔): Linux实战教学笔记 --- 更多详细资料请点我查看 第1章 回顾特殊符号 | #管道符,或者(正则) > #输出重定向 >> #输出追加重定向 < #输入重定向 << #追加输入重定向 ~ #当前用户家目录 `` $() #引用命令被执行后的结果 $ #以。。。结尾(正则) ^ #以。。。开头(正则) * #匹配全部字符,通配符 ? #任意一个字符,通配符 # #注释 & #让程序或脚本切换到后台执行 && #并且 同时成立 [] #表示一个范围(正则,通配符) {} #产生一个序列(通配符) . #当前目录的硬链接 .. #上级目录的硬链接 第2章 通配符 他是shell的内置功能 通配符,用过DOS的应该很了解,也很常用。 通配符,指包含这些字符的字符串“?”,“*”,“【”,{} 通配符含义===>匹配文件名 符号 作用 * 匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个) ls file * ? 匹配任何一个字符(不在括号内时)?代表人意1个字符 ls file 0 [abcd] 匹配abcd中任何一个字符 [a-z] 表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符 ls file 0 {..} 表示生成序列。以逗号分隔,且不能有空格 补充 [!abcd] 或[^abcd]表示非

Linux特殊符号浅谈

喜欢而已 提交于 2019-12-27 03:39:47
Linux 特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(? 、 ! 、 ~...) 打交道,其实在 Linux 有其独特的含义, 大致可以分为三类:Linux特殊符号、通配符、正则表达式。 Linux 特殊符号 又可以分以下几类 1 、 管道符号 字符 名称 功能描述 | 管道 传递的普通的字符串,来自于前一个命令 |xargs 管道流转换 与 xargs 传递的是把字符串变成了文件名 2、 目录结构 字符 名称 功能描述 . 当前目录 .. 当前目录上一级目录 3 、 重定向符号 字符 名称 功能描述 > 输出重定向 会清空原文以及内容 然后在向文件里面追加内容 >> 追加输出重定向 追加到文件最后一行 < 输入重定向 文本内容输入 tr xargs << 追加输入重定向 用于给文件追加多行文本 cat 4 、 其他特殊符号 字符 名称 功能描述 # 注释 Linux 注释,另 #root 超级用户提示符 $ 变量符号 shell 、 $ 变量取值、 AWK 取列 等 && 表示并且 前面部分执行成功才执行后面的部分 || 表示或者 前面部分执行失败才执行后面的部分 `` Shell 执行命令 引用命令的结果 ; 命令分割 一行分割多个命令,没有逻辑联系 ‘’ 设置字符串变量 不具有变量置换功能,输出时所见即所得 “” 设置字符串变量 具有变量置换功能,解析变量输出 {}

linux环境下nohup的执行jar

寵の児 提交于 2019-12-27 02:44:31
java -jar XXX.jar & 命令结尾没有 “&” ,则变成 “java -jar XXX.jar ” ,表示在当前ssh窗口,可按CTRL + C打断程序运行,或者直接关闭窗口,则程序直接退出 命令结尾添加 “&” ,则变成 “java -jar XXX.jar &” ,表示在当窗口关闭时,程序才会中止运行。&代表让该命令在后台执行。 nohup java -jar XXX.jar > Log.log & 或者 nohup java -jar XXX.jar >> Log.log & 命令 “nohup java -jar XXX.jar &” 部分,表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。注意,该作业的所有输出被重定向到nohup.out的文件中。 命令 “nohup java -jar XXX.jar > Log.log &” 部分,表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行,并且该作业的所有输出被重定向到Log.log的文件中。“ > Log.log ” 该命令就是指定日志输出的文件。 ">>"表示将输出以追加的方式重定向到Log.log中。 nohup java -jar XXX.jar > Log.log 2>&1 & 或者 nohup java -jar XXX.jar >> Log.log 2>&1 & 或者 nohup