TCPIP、HTTP、HTTPS基础知识
本⽂知识点:
1.TCP/IP的四层是什么。
2.TCP的三次握⼿。
3.http的协议⽅法有哪些以及区别。
5.http的错误码。
6.https的原理
⼀、TCP/IP分为四层:应⽤层、传输层、⽹络层、链路层。
1.应⽤层
应⽤层决定了向⽤户提供应⽤服务时的通信活动。
FTP(⽂件传输协议)和DNS(域名系统)域名系统提供域名到ip地址的解析服务、http协议都是处于改层。
2.传输层
传输层对上层应⽤层、提供处于⽹络连接中的两台计算机之间的数据传输。
传输层有两个不同的协议:TCP(传输控制协议)和UDP(⽤户数据报协议)、UDP不能保证数据⽆误的传输,协议不可靠。
3、⽹络层(IP)
⽤来处理⽹络上的数据包,数据包是⽹络传输的最⼩数据单位,该层规定了通过怎么样的路径到达对⽅计算机,并把数据包传送给对⽅。与对⽅计算机之间通过多台计算机或者⽹络设备进⾏传输时,⽹络层所起的作⽤就是在众多的选项内选择⼀条传输路线。
4、链路层(数据链路层、⽹络接⼝层)
⽤来处理连接⽹络的硬件部分。包括控制操作系统、硬件的设备驱动、⽹卡,及光纤等物理课件部分。硬件上的范畴均在链路层的作⽤范围之内。
TCP/IP通信传输流
⼆、TCP的三次握⼿
为了将数据准确⽆误的传递到⽬标处,TCP进⾏了三次握⼿,握⼿采⽤TCP的标志 -----SYN(synchronize)和
ACK(acknowledgement)。
客户端⾸先发送⼀个带SYN标志的数据包给对⽅。接收端收到后,回传⼀个带有SYN/ACK标志的数据包以⽰传达确认信息,最后客户端再回传⼀个带ACK标志的数据包,代表握⼿结束。
TCP三次握⼿
三、URL和URI区别
URL是统⼀资源定位符,URI是统⼀资源标识符,URI⽤字符串标识某⼀互联⽹的资源,⽽URL标识资源的地点(互联⽹所处的位置)。URI格式
四、HTTP协议
1.HTTP协议请求报⽂
请求报⽂是由请求⽅法、请求URI、协议版本、可选的请求⾸部字段和内容实体构成。
请求报⽂构成
2.HTTP协议响应报⽂
响应报⽂是由西⼀版本、状态码以及结识状态码的短语,可选响应⾸部字段和实体组成的。
响应报⽂构成
3.HTTP协议⽅法
GET:获取资源
⽤来请求访问已被URI标识的资源。制定的资源经服务器解析后返回响应内容,也就是说请求的资源是⽂本,那就保持原样返回。
GET请求响应例⼦
POST:传输实体主体
虽然GET⽅法也能传输实体主体,但是⼀般不⽤GET⽅法进⾏传输,⽽是⽤POST,POST请求参数在body中,⽤户不可见,⽽get传输内容拼接在URL中,⽤户可见,安全性较差。
POST请求响应例⼦
PUT:传输⽂件
⽤来传输⽂件,就像FTP协议的⽂件上传⼀样,要求在请求报⽂中主体重包含⽂件内容,然后保存到URI指定的位置。
但是PUT不带验证机制,存在安全问题,web⽹站⼀般不使⽤。
HEAD:获取报⽂⾸部
HEAD和GET⼀样,只是不返回报⽂主体,⽤于确认URI的有效性及资源更新的⽇期时间等。
DELETE:删除⽂件
与PUT相反的⽅法,⽤来按请求URI删除制定⽂件。
与PUT⼀样不带验证机制,存在安全问题,web⽹站⼀般不使⽤,使⽤必须配合程序验证机制⼀起使⽤。
OPTIONS:询问⽀持的⽅法
OPTIONS⽅法⽤来查询针对请求URI指定资源的⽀持⽅法。
OPTIONS响应例⼦
TRACE:追踪路径
让web服务器端将之前的请求通信环会给客户端的⽅法。
CONNECT:要求⽤隧道协议连接代理
要求和代理服务器通信时建⽴隧道,实现隧道协议进⾏TCP通信,主要使⽤SSL(安全套接字)和TSL(传输层安全)协议把通信内容加密后经⽹络隧道传输。
CONNECT响应例⼦
HTTP1.0和HTTP1.1⽀持⽅法:
HTTP⽀持⽅法表
4、Cookie的状态管理
HTTP是⽆状态协议,他不对之前发审过的请求和响应的状态进⾏管理,也就是说,⽆法根据之前的状态进⾏本次的请求,⽐如登录态,为了解决这个问题,引⼊Coookie技术,Cookie技术通过在请求和响应报⽂中写⼊Cookie信息来控制客户端的状态。
Cookie会根据从服务端发送的响应报⽂内的⼀个叫Set-Cookie的⾸部字段信息,通知客户端保存Cookie,当下次客户端再往服务器发送请求时,客户端会⾃动在请求报⽂中假如Cookie值发送出去。
服务端发现客户端的Cookie后,会根据服务器记录,检查哪⼀个客户端发来的请求,最后得到之前的状态信息。
没有Cookie状态的请求
存有Cookie的请求
客户端和服务端Cookie交互流程:
交互流程
5.HTTP状态码
状态码是当客户端向服务端发送请求时,描述返回请求结果,借助状态吗,⽤户可以知道服务端是否出错。
tcpip协议最低层状态码类别
2XX 成功
1)200 OK
2)204 No Content 请求处理成功,但是没资源返回
3)206 Partial Content 请求部分资源返回成功。
3XX 重定向
3XX结果表明浏览器需要执⾏某些特殊处理以正确请求
1)301 Moved PerManently 永久性重定向,表⽰资源被分配新的URI,要⽤新的URI访问。
2)302 found 临时性重定向,表⽰资源被分配新的URI,希望⽤户本次⽤新的URI访问,只是临时性的,已移动的资源对应的URL,捡来还有可能改变。
3)303 See Other 改状态码表⽰,请求的URI存在着另⼀个URI,应使⽤GET⽅法定向获取请求资源。
4)304 Not Modified 表⽰客户端发送附带条件的请求时,服务端允许请求访问资源,但是未满⾜条件的情况
4XX 客户端错误
1)400 Bad Request 表⽰报⽂中有语法错误。
2)401 Unauthorized 表⽰需要认证(BASIC认证或者DIGEST认证)
3)403 ForBidden 服务器资源禁⽌访问。
4)404 Not Found 服务器不到资源。
5XX 服务器错误
1)500 Internal Server Error 表⽰服务器端在执⾏请求时发⽣了错误。
2)503 Service Unavailable 服务器超负载或者停机维护⽆法处理请求。
6.HTTP缺点
1)通信使⽤明⽂,没有加密,可能被窃听。(通过加密解决)
2)不验通信⽅的⾝份,因此可能遭遇伪装。(通过证书解决)
3)⽆法证明报⽂完整性,可能已经遭篡改。(通信时会发送内容和内容的hash值⽤来验证完整性)
7.HTTPS诞⽣
因为HTTP协议存在上⾯的三个问题,存在安全隐患,所以通过SSL(安全套接字)和HTTP协议组合使⽤,加密HTTP的通信内容,这被称为HTTPS(HTTP sercure 超⽂本传输安全协议)。
HTTP+加密+认证+完整性保护 = HTTPS
HTTP和TCP通信,变成HTTP和SSL通信,SSL和TCP通信。
HTTP和HTTPS结构对⽐
1)HTTPS混合加密机制
⾮对称加密:⼀个公钥和⼀个私钥,不需要传输私钥,安全性较⾼看,但是处理速度慢。(、Elgamal)
对称加密:⼀个私钥,双⽅持有,需要传输私钥,容易被窃取,安全性低,处理速度快。(,算法)
混合加密利⽤两者优点:采⽤⾮对称加密算法的公钥,加密对称加密的私钥,传输数据使⽤对称加密的私钥加密数据,既保证数据传输安全,也能保证秘钥安全。
混合加密机制
2)证明公开密钥正确性的证书
为了证明公钥的真实性,引⼊数字证书机构的认证机构的公开密钥证书。
服务端向证书机构申请证书-》机构验证⾝份并利⽤公钥做数字签名,将公开密钥和证书绑定⼀起-》服务端将证书发送给客户端-》客户端利⽤证书的公开密钥(注意不是服务端的公开密钥),对证书进⾏验证,为了保证证书公钥安全传给客户端,⼀般浏览器会内置常⽤机构的公开密钥,这样就保证了公开密钥的真实性。
公开密钥证书申请和证明过程
3)HTTPS的安全通信机制
通信机制的主要过程:
1.客户端通过发送Client Hello报⽂开始SSL通信。报⽂中包含客户端⽀持的SSL的指定版本、加密组件列表(算法及密钥长度)
2.服务器发送Certificate报⽂。报⽂中包含公开密钥证书。
3.客户端利⽤服务端下发的证书,加密随机数,也就是私钥,发给服务端。
4.服务端收到私钥,⽤证书私钥解密,获取客户端发送私钥。
5.两端利⽤客户端私钥进⾏通信。
HTTPS通信机制⽰意图
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论