http协议的底层实现
2016-08-24 09:42
357 查看
1.http协议: 超文本传输协议,可以传递各种类型的文件,是使用最广泛的协议模式,是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用
2.http协议的底层是在应用层里,是一个特殊处理的socket,建立在TCP/IP协议之上的一种广泛应用
2.1.服务器先初始化一个socket,与端口绑定,对端口进行监听,调用阻塞,等待客户端的连接
2.2.初始化客户端的socket,与服务器的socket连接,需要经过三次握手
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
2.3.客户端向服务器发送数据请求.景行链接
很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。
2.4.服务器将数据返回给客户端,客户端读取数据,显示在界面上
2.5.客户端断开连接需要经过四次握手断开连接
第一次:客户端向服务器发送一个带有结束标记的报文
第二次:服务器接到报文后,向客户端发送一个确认号,同时通知自己相应的应用程序,对方要求断开连接
第三次:服务器向客户端发送结束标记的报文
第四次:客户端接收到报文后向服务器发送确认序号,断开连接
3.http协议的模式:请求-响应模式
3.1. 相应时,有响应头,相应行和相应体(实体内容)
3.2. 请求时,存在请求头,请求行和请求体
4.http协议是一个短连接模式: 一次连接服务器只处理一个请求,请求数据结束后就会断开
5. http洗衣存在两种方法,及post和get请求,使用get请求时,参数就直接附加在URL后,大小有限制且只能是字符串,而post请求存在请求体里面,有足够大的控件存储内容
TCP和UDP的区别
1、TCP是面向链接的,虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性,但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了连接的可靠性;而UDP不是面向连接的,UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以说UDP是无连接的、不可靠的一种数据传输协议。
2、也正由于1所说的特点,使得UDP的开销更小数据传输速率更高,因为不必进行收发数据的确认,所以UDP的实时性更好。
2.http协议的底层是在应用层里,是一个特殊处理的socket,建立在TCP/IP协议之上的一种广泛应用
2.1.服务器先初始化一个socket,与端口绑定,对端口进行监听,调用阻塞,等待客户端的连接
2.2.初始化客户端的socket,与服务器的socket连接,需要经过三次握手
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
2.3.客户端向服务器发送数据请求.景行链接
很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。
2.4.服务器将数据返回给客户端,客户端读取数据,显示在界面上
2.5.客户端断开连接需要经过四次握手断开连接
第一次:客户端向服务器发送一个带有结束标记的报文
第二次:服务器接到报文后,向客户端发送一个确认号,同时通知自己相应的应用程序,对方要求断开连接
第三次:服务器向客户端发送结束标记的报文
第四次:客户端接收到报文后向服务器发送确认序号,断开连接
3.http协议的模式:请求-响应模式
3.1. 相应时,有响应头,相应行和相应体(实体内容)
3.2. 请求时,存在请求头,请求行和请求体
4.http协议是一个短连接模式: 一次连接服务器只处理一个请求,请求数据结束后就会断开
5. http洗衣存在两种方法,及post和get请求,使用get请求时,参数就直接附加在URL后,大小有限制且只能是字符串,而post请求存在请求体里面,有足够大的控件存储内容
TCP和UDP的区别
1、TCP是面向链接的,虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性,但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了连接的可靠性;而UDP不是面向连接的,UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以说UDP是无连接的、不可靠的一种数据传输协议。
2、也正由于1所说的特点,使得UDP的开销更小数据传输速率更高,因为不必进行收发数据的确认,所以UDP的实时性更好。
相关文章推荐
- 用android的GCM 网络管理来优化电池使用时间
- HttpClient4.5源码泛读(1)
- 什么是泛型 转载自http://www.blogjava.net/Jack2007/archive/2008/05/05/198566.html
- 【网络】TCP、UDP、HTTP、SOCKET之间的区别
- iOS 开发中使用 NSURLProtocol 拦截 HTTP 请求
- Netty之HTTP协议开发
- okHttp使用及其优势
- IOS开发工具——网络封包分析工具Charles
- tcp初级用法:局域网聊天室-1对1-带文件传输
- 神经网络 手写识别例子 matlab实现
- http://blog.sina.com.cn/s/blog_6145ed810102vr8k.html
- 积累网络影响力,从实名制开始
- Ubuntu 网络配置
- 嵌入式开发第33天:(TCP/IP协议,面试题内容之一)
- ubuntu desktop解决系统启动后网络没有主动连接
- redhat5.5虚拟机(VMware)设置网络.txt
- TCP和IP协议的特点
- Android之Http通信GET与POST
- TCP/IP编程之SO_REUSEADDR和SO_REUSEPORT套接字选项
- 网络编程基础