3次握手 4次挥手
-
采用三次握手是为了防止失效的连接请求再次被接收,因而产生错误。
如第一次连接请求SYN=1由于网络阻塞没有到达S端,这时C端第二次发起连接请求SYN=2,由S端接收并连接完成数据传输后断开连接,第一次的连接请求才到达,如果没有第三次握手则会再次建立连接进而产生错误 -
四次挥手则是为了让全双工的收发端分别关闭,避免数据多发或漏传
HTTP / HTTPS
Request:
请求行
请求头
空行
请求数据
Response:
状态行
消息报头
空行
响应正文
HTTP 端口 80
HTTPS端口443
HTTP 1.1 新增 keep alive,之前都是短连接
HTTPS是在HTTP基础上增加了SSL/TLS协议,TLS从SSL升级而来,可以理解为不同时期对于同一事物的不同称呼。
取自https://www.cnblogs.com/mddblog/p/6948980.html- CA用私钥加密服务器的公钥形成证书
- 客户端用CA的公钥解密证书获得服务器公钥(保证了服务器的正确)
- 用服务器公钥商定传输信息的加密秘钥(保证信息的保密性)
- 通讯期间采用商定的加密秘钥
session / cookie
由于HTTP协议是无状态的协议,服务端无法识别用户连贯的操作,当服务端需要记录用户的状态时应运而生了session / cookie
cookie 存储在客户端的通行证,由服务端set-cookie返回,根据cookie的时效分为:内存存储、磁盘存储,客户端的请求会带有cookie,以证明自己是自己
session 存储在服务端的客户档案,当客户端访问服务端时,服务端会记录相关的用户信息保存到session,当用户再次访问服务端时,会查到以往的session,知道谁是谁
- cookie数据存放在客户的浏览器上,session数据放在服务器上;
- cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session;
- session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE;
- 单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K;
常见网络错误
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
-
200 OK
-
303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码
-
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容
-
403 服务器拒绝请求
-
404 服务器找不到请求的网页。
-
500 (服务器内部错误) 服务器遇到错误,无法完成请求
请求数据大小
理论上GET请求的URL长度没有限制,设置限制的是浏览器或服务器。
POST理论上也没有大小限制,也是由服务器端设置
TCP / UDP
位于传输层
1)、TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
2)、TCP传输单位称为TCP报文段(有序),UDP传输单位称为用户数据报(无序)。
3)、TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。
面向连接的服务,通信双方在进行通信之前,要先在双方建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。
非面向连接的服务,不需要预先建立一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往网络上发送信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。
UDP应用:视频、语音
TCP应用:文件传输
网友评论