网络
TCP和UDP的区别
- TCP面向有连接,提供可靠的传输;UDP面向无连接,不可靠传输
- TCP面向字节流,UDP面向数据包
TCP如何提供传输的可靠性
- 将数据截取为合理的长度
- 超时重传机制
- 对于收到的请求,给出确认响应
- 对数据包进行校验,错误的丢弃
- 对数据进行排序
- 提供流量控制
TCP三次握手,四次挥手,SYN攻击
三次握手的状态
closed:不在连接状态
listen:被动打开,接收方等待连接请求
SYN_SENT:主动打开,发送完连接请求后等待回复
SYN_received:接受连接请求,进行确认同时也向对端发送连接请求,等待恢复。
established:三次握手完毕,TCP连接建立完成。
三次握手四次挥手过程详解
TCP/IP协议模型几层,OSI模型几层
OSI七层模型 | TCP/IP五层模型 |
---|---|
应用层 | |
表示层 | |
会话层 | 应用层 |
传输层 | 传输层 |
网络层 | 网络层 |
数据链路层 | 数据链路层 |
物理层 | 物理层 |
HTTP的版本有几种
0.9 | 1.0 | 1.1 | 2.0 |
---|
HTTP请求报文结构,响应报文结构
GET请求报文实例:
GET /562f25980001b1b106000338.jpg HTTP/1.1
Host img.mukewang.com
Accept image/webp,image/*,*/*;q=0.8
Referer http://www.imooc.com/
Accept-Encoding gzip, deflate, sdch
Accept-Language zh-CN,zh;q=0.8
组成部分 | |
---|---|
请求行 | 包括: 请求类型, 要访问的资源, HTTP版本号 |
请求头部 | 说明服务器要使用的附加信息 |
空行 | 作用是通知服务器以下的不是请求头部 |
请求数据 | POST请求中使用 |
响应报文实例:
HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8
<html>
<head></head>
<body>
<!--body goes here-->
</body>
</html>
组成部分 | |
---|---|
状态行 | 包括:HTTP版本号, 状态码, 状态消息 |
消息报头 | 说明客户端要使用的附加信息 |
空行 | 作用是通知客户端以下的不是请求头部 |
响应正文 | 服务器返回给客户端的文本信息 |
HTTP状态码分类,400和500的区别
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
HTTP常见状态码
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器暂时不能处理客户端的请求,一段时间后可能恢复正常
HTTP和HTTPS的区别,HTTPS原理,加密方式
-
区别
HTTP协议以明文方式发送内容,不提供任何方式的数据加密,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。 -
HTTPS工作原理
(1)客户发送https请求访问Web服务器,要求与Web服务器建立SSL连接。
(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用自己的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通信。
- 加密方式
协商阶段是非对称加密,会话阶段是对称加密
浏览器输入地址到返回结果发生了什么
-
发送到DNS(域名服务器)获得域名对应的WEB服务器的IP地址。
-
客户端浏览器与WEB服务器建立TCP连接。
-
客户端浏览器向对应IP地址的WEB服务器发送相应的HTTP或HTTPS请求。
-
WEB服务器响应请求,返回指定的URL数据或错误信息;如果设定重定向,则重定向到新的URL地址。
-
客户端浏览器下载数据,解析HTML源文件,解析的过程中实现对页面的排版,解析完成后,在浏览器中显示基础的页面。
-
分析页面中的超链接,显示在当前页面,重复以上过程直至没有超链接需要发送,完成页面的全部显示。
网友评论