阅《图解http》 笔记

TCP/IP协议族

TCP/IP的分层管理

  • 应用层

应用层决定了向用户提供应用服务时通信的活动
TCP/IP协议族内预存了各类通用的应用服务 比如 FTP,DNS
HTTP协议属于该层

  • 传输层

提供处于网络连接中的两台计算机之间的数据传输

  • 网络层

用来处理在网络上流动的数据包

  • 数据链路层

用来处理连接网络的硬件部分

image.png

发送放从下往上,接收方从下往上通信

IP、TCP和DNS协议

IP协议

  • 把各种数据包传送给对方,要保证确实发送到对方那里,两个条件IP地址和MAC地址

image.png

确保可靠性得TCP协议
为了准确无误的数据送达目标处,TCP协议采用了三此握手策略
image

详细的三次握手和四次挥手

  • 第一次握手:

    建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认;

  • 第二次握手:

服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Number+1);同时,自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;

  • 第三次握手:

客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。

三次握手的目的是“为了防止已经失效的连接请求报文段突然又传到服务端,因 而产生错误”


URI 和 URL

URI(Uniform Resource Identifier):统一资源标识符

URL(Uniform Resource Locator):统一资源定位符

URI 用字符串标识某一互联网资源,而URL表示资源得地点。

请求报文

请求报文是由请求方法、请求URI、版本协议、可选的请求首部字段和内容实体构成的

image.png

服务器接收后返回的响应报文构成:

image.png

HTTP是无状态的协议,不会保存之前的请求和响应,HTTP/1.1提供了Cookie技术,就可以管理状态了

Method

GET: 请求服务器的某个资源

POST: 发送请求的参数 服务器处理后 请求的结果

PUT:传输文件,一般不使用该方法

HEAD:获得报文首部,用于却让你URI的有效性及资源更新的日期时间等。

DELETE:用来删除文件,一般不使用该方法

OPTIONS:用来查询针对请求URI指定的资源 支持的方法。响应:Allow:GET,POST…

TRACE: 在响应报文中返回请求报文中的数据

CONNECT:要求用隧道协议连接代理,主要使用SSL安全套接层和TLS传输层安全协议把通信内容加密后经网络隧道传输


持久连接

问题:一个页面可能会加载多个图片,每次请求都会造成TCP连接建立断开,增加通信量的开销

解决:只要任意一端没有提出断开来连接,则保持TCP连接状态,HTTP/1.1默认建立持久连接。

管线化:不要等待响应结束就可以直接发送下一个请求,比如网页还有图片没加载出来就可以点击其他的连接发起请求。


返回结果的状态码

image.png


HTTPS = HTTP+加密+认证+完整保护

HTTP的不足

  • 1 通信明文,内容可能会被窃听
  • 2 不验证通信方的身份,因此有可能遭遇伪装
  • 3 无法证明报文的完整性,所以有可能已遭遇篡改

我们把添加加密及认证机制的HTTP称为HTTPS(HTTP Secure)

image.png

HTTP是直接和TCP通信。而HTTPS是先和SSL(Secure Socket Layer)通信,再由SSL和TCP通信

SSL是为网络通信及数据完整的一种安全协议

HTTP的瓶颈

  • 1 一条连接上只可发送一个请求
  • 2 请求只能从客户端开始
  • 3 请求/响应首部未经压缩就发送
  • 4 发送冗长的首部
  • 5 可任意选择数据压缩格式

解决办法

1 - Ajax 异步请求 利用javaScript和DOM的操作
2 - WebSocket 即Web浏览器与Web服务器之间全双共通信标准

推送功能,类似实时通讯 。减少通信量只要建立了WebSocket就会一直保持连接状态

握手·请求 发送HTTP请求时首部字段Upgrade:websocket

握手·响应 对于之间的请求,返回状态码101 Switching Protocols的响应

1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值