OSI 7层模型
TCP/IP 四层模型
包为描述数据的全能型单位。
SYN (Synchronize Flag) ACK(Acknowledgement Flag) FIN(Fin Flag)
TCP 的三次握手
四次挥手
MSS(Maximum Segment Size) 最大消息长度:由三次握手的时候,两端主机会在TCP首部写入 MSS 长度,通过比较,取得其中比较少的值
窗口控制
原先的缺点:TCP 以一个段为单位,每发一个段进行一次确认应答的处理。包的往返时间越长,通信性能越低。
因此引入窗口这个概念。窗口大小是指无需等待确认应答,而可以继续发送数据的最大值。
使用大量的缓冲区,如果有部分数据丢包,发送端主机设置缓存保留这些数据,直至收到它们的确认应答。
如果没有丢包,就滑动窗口到下一个位置
重发控制
窗口在一定程度上较大时,即使有少部分的确认应答丢失也不会进行数据重发。可以通过下一个确认应答确认。
当某一报文段丢失后,发送端会一直收到序号为原数据的确认应答。连续 3 次 同一个确认应答,会进行重发
流控制
TCP 首部中有专门的字段用来通知窗口的大小
接收主机将自己可以接收的缓冲区大小放入这个字段中通知给发送端,这个字段的值越大,说明网络的吞吐量越高
拥塞控制
慢启动:通过拥塞窗口,第一次大小为 1 MSS , 以后每次 收到一次确认应答(ACK),拥塞窗口的值 加 1.
然后比较 两端 窗口的 大小,发送比小值还的小的数。
Http 定义了服务器交互的不同方法 ,最基本的有四种 :GET查, POST改,PUT增,DELETE删。
区别:
HTTP协议 ( www.w3.org/Protocols/ )是“一次性单向”协议。
服务端不能主动连接客户端,只能被动等待并答复客户端请求。客户端连接服务端,发出一个HTTP Request,服务端处理请求,并且返回一个HTTP Response给客户端,本次HTTP Request-Response Cycle结束。
Session ID实际上是在客户端和服务端之间通过HTTP Request和HTTP Response传来传去的。
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
1) HTTP协议详解之请求篇
http请求由三部分组成,分别是:请求行、消息报头、请求正文
1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:
Method Request-URI HTTP-Version CRLF
其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。
请求方法(所有方法全为大写)有多种,各个方法的解释如下:
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
2、请求报头后述
3、请求正文(略)
2) HTTP协议详解之响应篇
在接收和解释请求消息后,服务器返回一个HTTP响应消息。
HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文
1、状态行格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求
常见状态代码、状态描述、说明:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
eg:HTTP/1.1 200 OK (CRLF)
2、响应报头后述
3、响应正文就是服务器返回的资源的内容
3) HTTP协议详解之消息报头篇
HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。
普通报头 | 请求报头 | 响应报头 | 实体报头 |
---|---|---|---|
Cache-Control | Accept | Location(重定向) | |
Date | Accept-Charset | Server(服务器用来处理软件的信息 | |
Connection | Accept-Encoding | Content-Encoding | |
Accept-Language | Content-Language | ||
Authorization | WWW-Authenticate | Content-Type | |
Host | Last-Modified | ||
User-Agent | Expires |
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer,基于SSL的HTTP协议)使用了HTTP协议,但HTTPS使用不同于HTTP协议的默认端口及一个加密、身份验证层(HTTP与TCP之间)。提供了身份验证与加密通信方法,现在它被广泛用于互联网上安全敏感的通信。
客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤。
(1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用自己的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通信。
(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现”表现层状态转化”。
(1)客户-服务器:客户-服务器约束背后的原则是分离关注点。通过分离用户接口和数据存储这两个关注点,改善了用户接口跨多个平台的可移植性;同时通过简化服务器组件,改善了系统的可伸缩性。
(2)无状态:通信在本质上是无状态的,改善了可见性、可靠性、可伸缩性.
(3)缓存:改善了网络效率减少一系列交互的平均延迟时间,来提高效率、可伸缩性和用户可觉察的性能。
(4)统一接口:REST架构风格区别于其他基于网络的架构风格的核心特征是,它强调组件之间要有一个统一的接口。
csrf 跨站点请求伪造 : 冒充用户发起请求。
本质:通过已经认证的用户权限搞事情。
模拟攻击: user – webA – webB
cookie 验证合格,所以 webB 可以 通过 user 的权限操控 webA
与 xss 区别:
通常来说 CSRF 是由 XSS 实现的,CSRF 时常也被称为 XSRF(CSRF 实现的方式还可以是直接通过命令行发起请求等)。
本质上讲,XSS 是代码注入问题,CSRF 是 HTTP 问题。XSS 是内容没有过滤导致浏览器将攻击者的输入当代码执行。CSRF 则是因为浏览器在发送 HTTP 请求时候自动带上 cookie,而一般网站的 session 都存在 cookie里面。
xss 跨站脚本攻击 : 通过注入非法的 html 标签 以及 javascript 代码,从而当用户浏览网页时,控制用户的浏览器
xss 主要分为三类:
跨站脚本攻击可能造成以下影响:
防御:
因为自己没有这方面的经验与系统的学习,所以就大概了解了一下,没有过多的分析。
漫画告诉你什么是DDoS攻击?
DDoS的攻击原理与防御方法
都看到这里了,点个关注好不啦。
你的关注,是我最大的动力哦。
不定期干货更新。
一只相当程序员的1米88处女座大可爱。
联系客服