• 主页
  • 相册
  • 随笔
  • 目录
  • 存档
Total 244
Search AboutMe

  • 主页
  • 相册
  • 随笔
  • 目录
  • 存档

网络小知识-1

2020-06-19

1. ssl/tls

TLS 1.0

  • IETF将SSL标准化,即 RFC 2246 ,并将其称为TLS(Transport Layer Security)。

SSL协议主要分为两层:

  • SSL记录协议层的作用是为高层协议提供基本的安全服务。SSL记录协议针对HTTP协议进行了特别的设计,使得超文本的传输协议HTTP能够在SSL运行。纪录封装各种高层协议,具体实施压缩解压缩、加密解密、计算和校验MAC等与安全有关的操作。

  • SSL握手协议层包括SSL握手协议(SSL HandShake Protocol)、SSL密码参数修改协议(SSL Change
    Cipher Spec Protocol)和SSL告警协议(SSL Alert
    Protocol)。握手层的这些协议用于SSL管理信息的交换,允许应用协议传送数据之间相互验证,协商加密算法和生成密钥等。

  • SSL的建立过程总共有13个包,第一次建立至少需要9个包。
  • Handshake phase(握手阶段):
    • 协商加密算法
    • 认证服务器
    • 建立用于加密和MAC(Message Authentication Code)用的密钥

2. session和cookie的区别

  • 由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Session,用用于标识这个用户,并且跟踪用户,这样才知道购物车里面有几本书。
  • 每次HTTP请求的时候,客户端都会发送相应的Cookie信息到服务端。实际上大多数的应用都是用 Cookie 来实现Session跟踪的,第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在 Cookie 里面记录一个Session ID,以后每次请求把这个会话ID发送到服务器,我就知道你是谁了

  • session 在服务器端,cookie 在客户端(浏览器)
  • session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
  • session 默认被存在在服务器的一个文件里(不是内存)
  • session 可以放在 文件、数据库、或内存中都可以。

3. 断点续传

其实断点续传的原理很简单,就是在Http的请求上多定义了断点续传相关的HTTP头 Range和Content-Range字段而已

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1.浏览器请求服务器上的一个文件名为test.zip时,请求内容只展示了一些与本文有关的信息

GET /test.zip HTTP/1.1Accept-Language: zh-cnAccept-Encoding: gzip, deflateConnection: Keep-Alive

2.服务器收到请求后,按要求寻找请求的文件,提取文件的信息,然后返回给浏览器,返回信息如下:

200Content-Length=66667777Accept-Ranges=bytesContent-Type=application/octet-stream

为了实现从文件已经下载的地方开始继续下载。所以在客户端传给服务器的时候要多加一条信息--从哪里开始。下面是客户端请求时的请求信息,要求从44445555字节开始。

GET /test.zip HTTP/1.0User-Agent: NetFoxRANGE: bytes=44445555-

上面的请求信息多了一个新的字段RANGE RANGE:bytes=44445555-
这段话的意思就是告诉服务器test.zip这个文件从44445555字节开始传,前面的字节不用传了。服务器收到这个请求以后,返回的信息如下:

206Content-Length=66667777Content-Range=bytes 44445555-66667777Content-Type=application/octet-stream

和第一次服务器返回的信息相比,增加了一行:
Content-Range=bytes 44445555-66667777
返回的代码也改为206了,而不再是200了。

4. http状态码

网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。

HTTP状态码的英文为HTTP Status Code。

  • 参考

5. http1.0 1.1 2.0

  • HTTP1.0、HTTP1.1 和 HTTP2.0 的区别 - _浪潮之巅.☆ - 博客园

6. MINE Type

互联网媒体类型(Internet media type,也称为MIME类型(MIME type)或内容类型(content type))是给互联网上传输的内容赋予的分类类型

  • 什么是 MIME Type? - 故乡的牛 - 博客园

7. 私有IP地址共有三个范围段

只是使用在局域网中,在Internet上是不使用的。

1
2
3
4
5
6
7
8
9
10/8:
10.0.0.0-10.255.255.255

172.16/12:
172.16.0.0—172.31.255.255

192.168/16:
192.168.0.0-192.168.255.255

ps

微软内部保留地址,也属于内网的,如果你设置的是自动获得ip,而机子有找不到dhcp服务器的话,无法分配ip,机子就自己给自己设置一个169.254.*.*的ip

8. 浏览器的Accept-Language的q代表什么?

每个语言范围可以给出一个相关的质量值,该值表示用户对该范围指定的语言的偏好的估计值。质量值默认为“q=1”。例如,接受语言:da, en-gb;q=0.8, en;q=0.7表示:“我喜欢丹麦语,但也接受英式英语和其他类型的英语。”

9. web前端面试必备–常见的网站端口

  • web前端面试必备–常见的网站端口 - 简书

10. 隧道

隧道协议(英语:Tunneling Protocol)是一种网络协议,在其中,使用一种网络协议(发送协议),将另一个不同的网络协议,封装在负载部分。使用隧道的原因是在不兼容的网络上传输数据,或在不安全网络上提供一个安全路径

10.1. ip工具

1
2
3
4
5
6
7
8
9
10
11
12
ip link show                     # 显示网络接口信息
ip link set eth0 up # 开启网卡
ip link set eth0 mtu 1400 # 设置网卡最大传输单元

ip route show # 显示系统路由
ip route add default via 192.168.1.254 # 设置系统默认路由
ip route del default # 删除默认路由

# 用ip命令显示网络设备的运行状态
ip link list
# 显示更加详细的设备信息
ip -s link list

10.2. 隧道协议在Linux下的用法

1
2
3
4
5
6
7
8
9
ip tunnel add ${interface name} mode gre \
local ${local endpoint address} \
remote ${remote endpoint address} \
key ${key value}

# key value: 一个密钥,当两端密钥相同时隧道才能连通
ip tunnel add tun4 mode gre local 192.0.2.1 remote 203.0.113.6 key 123 ttl 255
ip link set tun4 up
ip addr add 10.0.0.1/24 dev tun4

需要host a, host b两方都设置

  • GRE隧道协议_s2603898260的博客-CSDN博客

IP隧道技术:是路由器把一种网络层协议封装到另一个协议中以跨过网络传送到另一个路由器的处理过程。IP 隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。IP隧道技术亦称为IP封装技术(IP encapsulation)。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址。移动IPv4主要有三种隧道技术,它们分别是:IP in IP、最小封装以及通用路由封装。更多信息可以参看百度百科:IP隧道 和 隧道技术 。


GRE隧道是一种IP-over-IP的隧道,是通用路由封装协议,可以对某些网路层协议的数据报进行封装,使这些被封装的数据报能够在IPv4/IPv6 网络中传输。

Tunnel 是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个Tunnel 的两端分别对数据报进行封装及解封装。 一个X协议的报文要想穿越IP网络在Tunnel中传输,必须要经过加封装与解封装两个过程

11. 编码

  • \u
    • Unicode编码
    • 一般其后跟 4 个 16 进制数,因此,一般为 unicode-16
    • '\u4f60\u597d'
  • %u
    • Unicode编码(也就是S转换为%u0053,用于waf bypass)
  • \x
    • \x:只是 16 进制的意思,后边跟两位,则表示单字节编码
    • \xaa ⇒ chr(0xaa) ⇒ chr(16*a+a)
  • 0x
    • 同\x
  • %
    • urlencode

      空格目前有两种不同的编码方式,一种是在HTML4中定义的,而另一种是在RFC-3986中定义的

      建议客户端和服务端同时使用RFC-3986编码方式,将请求参数全部编码成%HH格式

  • &
    • HTML编码转义HTML文档中使用的字符串中的特殊字符,以防止与HTML元素混淆
    • "<hello>world</hello>"
  • 大小写

11.1. urlEncode

urlEncode

对汉字以及特殊字符进行编码。称为百分号编码,也称作URL编码,是特定上下文的统一资源定位符 (URL)的编码机制

12. RESTful架构:

  (1)每一个URI代表一种资源;

  (2)客户端和服务器之间,传递这种资源的某种表现层;

  (3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现”表现层状态转化”。(PUT/PATCH 更新资源 DELETE 删除资源)

设计错误

  • /posts/show/1
  • http://www.example.com/app/1.0/foo

13. 参考

  • SSL/TLS协议详解 | 曹世宏的博客
  • COOKIE和SESSION有什么区别? - 知乎
  • 浅谈HTTP断点续传原理_小马过河-CSDN博客_断点续传
  • 隧道协议在Linux下的用法 - 讲道义的馒头
  • linux 下创建GRE隧道 – 运维生存时间
  • \x与\u编码的区别,并使用python对其进行转换_huangmr的专栏-CSDN博客
  • Computer Network
  • Notes
Python反序列化漏洞
点击劫持
  1. 1. 1. ssl/tls
  2. 2. 2. session和cookie的区别
  3. 3. 3. 断点续传
  4. 4. 4. http状态码
  5. 5. 5. http1.0 1.1 2.0
  6. 6. 6. MINE Type
  7. 7. 7. 私有IP地址共有三个范围段
  8. 8. 8. 浏览器的Accept-Language的q代表什么?
  9. 9. 9. web前端面试必备–常见的网站端口
  10. 10. 10. 隧道
    1. 10.1. 10.1. ip工具
    2. 10.2. 10.2. 隧道协议在Linux下的用法
  11. 11. 11. 编码
    1. 11.1. 11.1. urlEncode
  12. 12. 12. RESTful架构:
  13. 13. 13. 参考
© 2024 何决云 载入天数...