HTTP协议-响应码
浏览器向服务器发出请求,服务器处理可能是成功、可能是失败、可能没有权限访问等原因,服务器会通过响应码来告诉浏览器处理结果。
"" : OK
"" : Found 重定向.
"" : Bad Request 错误请求,发出错误的不符合Http协议的请求
"" : Forbidden 禁止
"" : Not Found 未找到。演示访问一个不存在的页面看报文
"" : Internal Server Error 服务器内部错误。演示页面抛出异常。
"" : Service Unavailable。一般是访问人数过多。
200段是成功;300段需要对请求做进一步的处理;400段表示客户端请求错误;500段是服务器的错误。
HTTP协议-服务器返回的报文
Server: Cassini/3.5.0.5 表示服务器的类型
Content-Type: text/html; charset=utf- 表示返回数据的类型
服务器通过Content-Type告诉客户端响应的数据的类型,这样浏览器就根据返回数据的类型来进行不同的处理,如果是图片类型就显示,
如果是文本类型就直接显示内容,如果用html类型就用浏览器显示内容,如果是下载类型就弹出下载工具等。
常用Content-Type:text/HTML、image/GIF、image/JPEG、 text/plain、text/javascript、application/x-excel 、
application/octet-stream(二进制文件)
Content-Length: 19944表示响应报文体的字节长度,报文头只是描述,返回的具体数据(比如HTML文本、图片数据等)在两个回车之后的内容中。
Http协议-其他
http是无状态的,不会记得“上个请求***”,所以哪怕是同一个页面中的js、css、jpg也都要重复的提交Accept-Language、Accept-Encoding、Cookie等。
网页中如果有图片、css、js等外部文件的话图片、css、js都在单独的请求中,也就是并不是页面的所有内容都在一个请求中完成,而是每个资源一个请求。
一般情况下,只有浏览器请求服务器端,服务器端才有给浏览器响应数据,服务器不会主动向浏览器推送数据,这样是安全考虑,也是提高服务器的性能考虑。
如果要服务器向浏览器推送数据,则需要使用ServerPush(ajax隔一段时间到服务器请求最新的数据)等额外的技术。
Http是“请求—响应”的工作方式。
断点续传的原理。多线程下载基于断点续传。(*)