标签:tcp

0

2214

http 协议简介,请求头域

最近想自己写一个http代理服务,因此重新温习下http协议知识~

HTTP协议简介

浏览器和Web服务器之间一问一答的交互过程遵守一定的规则,这个规则就是HTTP协议。HTTP协议时TCP/IP协议集中的一个应用层协议,定义了浏览器和Web服务器之间交换数据过程和数据本身的格式。现在广泛应用的有HTTP/1.0和HTTP/1.1两个版本,1.1和1.0相比最大的特点就是增加对长连接的支持。

HTTP/1.0的通信过程

HTTP/1.0只支持短连接,每次连接只处理一个请求,即使对同一站点的每一个页面的访问,浏览器和服务器之间都要建立一次单独的链接。

HTTP /1.1的通信过程

HTTP/1.1支持长连接,在一个TCP连接上可以传送多个HTTP请求和应答,减少建立和关闭连接的消耗和延迟。例如一个包含多张图片资源的网页文件的多个请求和响应可以在同一个连接中传输,并且还允许浏览器客户端不用等待上一次请求的结果返回就可以发送下一个请求,也就是支持pipeline管线化。

HTTP请求

完整的HTTP请求包括:一个请求行、若干HTTP头域和可选的实体内容三部分:

请求行

请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议版本,格式如下:

   Method  Request-URI  HTTP-Version CRLF

……

乐果   发表于   2017 年 11 月 04 日 标签:tcphttp 继续阅读

0

2229

Tcp“长连接”实战中的总结

因开发公司“灯控中转服务”(穿透客户端网络限制)过程中,用了tcp长连接,持续的踩坑,慢慢的对这种 网络多变网络不稳定 环境下的Tcp服务通信,有了更加清晰的认识,现总结一下。

一、理解:tcp是面向链接的,http是无状态的

tcp是建立在ip链接上,没有链接就没有通信。

http当然也是建立在tcp的基础上,但因为常用的是短链接,即链即用,所谓无状态是指“身份标识”,tcp也无身份标志,这都要靠协议自身的约定来保证,比如http为了身份状态识别,client端有cookie,server端有session,client在每次请求的报文中,都带上了cookie让server端能识别。

二、tcp在静默状态下,对链路状态无感知

tcp是面向链接的,但是,链接依赖的链路断了(也就是ip层),tcp两端其实并不会知道,只有当他们之间有报文往来的时候,才会发现报文无法到达对方(所依赖的网络链路已经发生变化)

实验:

对链接上服务的两端,中途快速把网线拔掉,然后迅速插上,此时双方ip未发送变化,服务两端的链接依然能通信~

……

乐果   发表于   2017 年 11 月 02 日 标签:tcp 继续阅读

热评文章