knightwatch 2020-01-01
由于最近找工作需要准备这两个协议方面的问题,所以对这两个传输协议来总结一下自己的看。网上各路大神对这两个传输协议已经分析的非常透彻了,在下才疏学浅,仅说一下自己的想法,以供参考,同时也是对自己的一个经验总结。
1.http协议,即超文本传输协议,英文名叫做Hypertext Transfer Protocol,是一种浏览器和服务器之间沟通的一种规范,使用在应用层,用于解决如果包装数据,是一种应用层协议。是基于TCP/IP协议之上的,具体可参考OSI七层协议,这里不再赘述。
Http的请求方式包括我们熟知的GET和POST之外还有,PUT,DELETE,OPTIONS,HEAD,TRACE,CONNECT,大家能熟练使用GET和POST即可,其余的请求方式只需了解,实际工作中应用到的非常之少。
在创建一个Http请求时,需要在请求的头部即Header添加相关问价,例如请求方式,请求的文件格式是json或者xml等,以及自定义的头部验证,和时间戳,在互联网中,一个来自头部的请求验证是非常有必要的,它保证了你的请求不会暴露,数据的保密性。通常头部加密验证的和时间戳可以结合使用,以确保数据的安全性。除上述之外,在请求时也可以声明该请求支持的数据压缩格式。
Http的请求被浏览器接收处理后会响应这个请求将响应后的数据发送回来。响应的数据最重要的部分即响应头的状态行以及数据的编码格式是否需要解压缩。状态行可以判断出强求是否被正常响应,编码格式需要我们使用相对应的编码来进行解压缩以得到文件。
2.TCP/IP协议,即传输控制协议/网际协议,英文名叫做Transmission Control Protocol/Internet Protocol,指的是一系列的协议,使用在传输层,是一种传输层协议,主要用于传输HTTP这种的应用层协议,其中TCP协议有一个特殊的机制来保证数据安全的不出错的从一个端口传输到另一个端口,这种机制就是大家所熟知的三次挥手和四次握手。