HTTP协议
2015-09-29 15:57
661 查看
HTTP协议(HyperTextTransfer Protocol, 超文本传输协议) 是一个属于应用层的面向对象的协议
主要特点:
l 简单快速
l 灵活。可传输任意类型的数据对象
l 无连接。每次连接只处理一次请求,服务器处理完成客户请求后并受到客户的应答后立即断开连接。
l 无记忆状态。协议不保留当前事务处理的信息。
TCP连接
手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。
建立起一个TCP连接需要经过“三次握手”:
第一次握手:客户端发送syn包(syn=j,syn:)到服务器,并进入SYN_SEND状态,等待服务器确认;(syn: TCP/IP建立连接时使用的握手信号)
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。
TCP和UDP区别:
八种请求方法:
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT保留将来使用
OPTIONS请求查询服务器的性能,或者查询与资源相关的选项和需求
Reason-Phrase状态码:
Ø 1xx:指示信息--表示请求已接收,继续处理
Ø 2xx:成功--表示请求已被成功接收、理解、接受
Ø 3xx:重定向--要完成请求必须进行更进一步的操作
Ø 4xx:客户端错误--请求有语法错误或请求无法实现
Ø 5xx:服务器端错误--服务器未能实现合法的请求
常见状态代码、状态描述、说明:
Ø 200OK //客户端请求成功
Ø 400Bad Request //客户端请求有语法错误,不能被服务器所理解
Ø 401Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
Ø 403Forbidden //服务器收到请求,但是拒绝提供服务
Ø 404Not Found //请求资源不存在
Ø 500Internal Server Error //服务器发生不可预期的错误
Ø 503Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
工具:HttpWattch
主要特点:
l 简单快速
l 灵活。可传输任意类型的数据对象
l 无连接。每次连接只处理一次请求,服务器处理完成客户请求后并受到客户的应答后立即断开连接。
l 无记忆状态。协议不保留当前事务处理的信息。
TCP连接
手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。
建立起一个TCP连接需要经过“三次握手”:
第一次握手:客户端发送syn包(syn=j,syn:)到服务器,并进入SYN_SEND状态,等待服务器确认;(syn: TCP/IP建立连接时使用的握手信号)
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。
TCP和UDP区别:
TCP(Transmission Control Protocol,传输控制协议) | UDP(User Data Protocol,用户数据报协议) | |
是否连接 | 面向连接 | 面向非连接 |
传输可靠性 | 可靠 | 不可靠 |
应用场合 | 输大量数据 | 少量数据 |
速度 | 慢 | 快 |
Http请求
Http请求由三部分组成,分别是:方法-URL-协议/版本号、请求头、请求正文。八种请求方法:
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT保留将来使用
OPTIONS请求查询服务器的性能,或者查询与资源相关的选项和需求
Http应答
Http应答:协议-状态代码-描述、应答头、应答正文。Reason-Phrase状态码:
Ø 1xx:指示信息--表示请求已接收,继续处理
Ø 2xx:成功--表示请求已被成功接收、理解、接受
Ø 3xx:重定向--要完成请求必须进行更进一步的操作
Ø 4xx:客户端错误--请求有语法错误或请求无法实现
Ø 5xx:服务器端错误--服务器未能实现合法的请求
常见状态代码、状态描述、说明:
Ø 200OK //客户端请求成功
Ø 400Bad Request //客户端请求有语法错误,不能被服务器所理解
Ø 401Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
Ø 403Forbidden //服务器收到请求,但是拒绝提供服务
Ø 404Not Found //请求资源不存在
Ø 500Internal Server Error //服务器发生不可预期的错误
Ø 503Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
工具:HttpWattch
相关文章推荐
- 2015合肥网络赛 HDU 5492 Find a path 动归
- Gson的使用 && 使用OKHttp处理Volley的底层HTTP请求
- 通风网络解算程序
- HTTP的GET和POST
- 黑马程序员--网络编程
- Android 网络通信框架Volley简介(Google IO 2013)
- HTTP状态码和含义
- http和https
- http请求
- XMLHttpRequest取得响应
- NAT原理与NAT穿越
- XMLHttpRequest发送请求
- 地址转换
- tcp/udp端口说明
- Xcode7.0 更新完后,网络请求报错
- POJ 1637 Sightseeing tour
- STUN和TURN技术浅析
- 【iOS基础】iOS 网络请求
- ios状态栏(转自http://www.molotang.com/articles/1609.html)
- 状态栏提示控件的实现原理(转自http://www.cnblogs.com/smileEvday/archive/2013/05/30/statusBarTips.html)