Web开发是和HTTP协议打交道的,必须了解,
HTTP协议版本: HTTP/0.9 HTTP/1.0 HTTP/1.1 现在主流是 HTTP/1.1版本
HTTP协议分析工具:
1.DebugBar HTTP(S)标签的内容,免费的,只能分析当前浏览器中的内容
2.httpwatch 收费的,只能分析当前浏览器中的内容,推荐使用
3.HttpAnalyzer 收费的,能分析计算机所有的HTTP请求数据
HTTP协议的几个概念:
1.连接(Connection) 浏览器和服务器之间传输数据的通道,请求完毕后就关闭连接,不会保持连接
2.请求(Request) 浏览器向服务器发送的"我要..."的消息,包含请求的类型,数据,浏览器的信息(语言,浏览器版本等)
3.响应(Response) 服务器对浏览器请求的返回的数据,包含是否成功,错误码等
HTTP响应码:
200: OK
301: Moved Permanently 永久转移
302: Found 暂时转移
307: Temporary Redirect 重定向
400: Bad Request 错误请求
401: Unauthorized 未认证
403: Forbidden 禁止
404: Not Found 未找到
500: Internal Server Eroor 服务器内部错误
503: Service Unavailble 一般是访问人数过多
200段:成功
300段:需要对请求作进一步处理
400段:客户端请求错误
500段:服务端错误
------- HTTP其它 --------
网页中如果有图片,CSS,JS等外部文件的话都在单独的请求中,也就是并不是页面的所有内容进都在
一个请求中完成,而是每个资源一个请求
一般情况下,只有浏览器请求服务器端,服务器端才有给浏览器响应数据,不会主动向浏览器推送数据
这样是安全考虑,则需要使用ServerPush等额外的技术
HTTP是"请求--响应"的工作方式,因此页面会不断刷新,如果不希望页面刷新,则要使用AJAX等技术
断点续传的原理
GET a.zip HTTP/1.1
Length:3MB-6MB //下载某一段
多线程下载的原理(加快下载速度)
10MB //10MB的文件
0-5MB //一个线程
5-10MB //一个线程