http协议
http协议
- HTTP基于TCP/IP通信协议
- HTTP协议工作于客户端-服务端架构为上
- HTTP允许传输任意类型的数据对象。
- 传输的data类型由Content-Type加以标记
- 每次连接只处理一个请求
- 服务器处理完客户的请求,并收到客户的应答后,即断开连接。
- http协议 单向性, 无状态
- 只能由用户主动请求, 服务器被动响应
- 服务器不能主动响应
URL 统一资源定位符 互联网上用来标识某一处资源的地址
协议部分 域名部分 端口部分 虚拟目录部分/ 文件名部分/? 锚部分# 参数部分?#
请求的组成
请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.
请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息
空行,请求头部后面的空行是必须的
请求数据也叫主体,可以添加任意的其他数据。
响应的组成
状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。
消息报头,用来说明客户端要使用的一些附加信息
第三部分:空行,消息报头后面的空行是必须的
第四部分:响应正文,服务器返回给客户端的文本信息。
状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
请求方法
GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
ajax短轮询: 定时通过ajax查询服务器端数据是否更新; 轮询间隔
好处:
1 服务器端不用改造
2 用户端加个定时器即可
3 兼容性最好
坏处:
1 服务器资源浪费,发送大量请求, 每此请求,都会消耗一定的带宽,带宽是固定的,消耗越多,速度越慢;
2 数据同步不及时;
带宽:最难提升;
comet: 基于http长连接的服务器 推技术
应用场景: ajax 长轮询[polling] ||
关于 长轮询
服务器收到请求后, 会阻塞该请求, 直到有数据才进行响应; 或者万不得已,比如超时的时候响应;
核心原理: 用户必须保证和服务器间存在持续请求响应关系, 服务器可以延迟响应,但必须是在用户发起请求的前提下;
浙公网安备 33010602011771号