黑马程序员_学习笔记16_Http协议初探

来源:互联网 发布:银行软件开发笔试 编辑:程序博客网 时间:2024/06/05 04:24
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------

Web开发是和Http协议打交道的,必须了解Http协议。

Http的版本 Http/0.9  Http/1.0  Http/1.1


Http协议分析工具:

 1.DebugBar,Http(S)标签内容,免费的,只能分析当前浏览器的内容。

 2.HttpWatch,收费的,只能分析当前浏览器的内容

 3.HttpAnalyzer : 收费的,能分析计算机上所有的Http请求数据。


Http协议的几个概念:

   1。链接(Connectioin):浏览器和服务器之前传输数据的通道。请求结束后,立即关闭该链接,不会保持。

   2。请求(Request):浏览器想服务器发送”我要啥啥啥“的消息,

          包含请求的类型(post,get),请求的数据(表单数据,cookie),浏览器的信息(版本,区域,语言等)

   3。响应(Response):服务器对浏览器的请求返回相应的数据,包含是否成功,

        错误代码等。

 

Http每次在服务器和客户端之间的请求之间都会附带服务器端和客户端的某些信息。

把这些信息称之为Http报文。

 

Http请求报文(客户端到服务器端)

可以使用httpwatch来查看访问一个网站的请求和响应情况。敲入一个网址并按回车键之后

浏览器就会向服务器发送一个请求。当前页面的中从网页外部导入的文件将执行一个新的

请求。页面中是利用导入语法导入的,诸如 图片,js,css等都是一个单纯的请求。

 

GET/HTTP/1.1表示象服务器使用GET的方式请求页面,当前请求使用的是HTTP/1.1协议。

 

Accept-Encoding gzip,deflate表示浏览器支持的gzip,deflate的两种压缩算法。

 

Accept - Language zh-cn 表示浏览器支持的语言,很多国际性的网站都在服务器端读取

http请求报文中的这个属性来确定用户当前请求该导向该国语言的页面。

 

Connection Keep-Alive .一般情况下,一但web服务器想浏览器发送了请求数据,它就要关闭

TCP链接,然后如果浏览器或者服务器在其头信息中加入了Connection Keep-Alive ,则TCP在

发送完用户请求后,仍然保持当前用户和服务器之间的连接,于是浏览器可以通过上一次的Http

请求报文向服务器发送请求。保持连接节省了为每一个请求连接建立所需要的时间,还节约了网络

流量。

 

Cookie  是浏览器向服务器发送的和当前网站关联的Cookie,这样服务器也能读取浏览器端的Cookie。

 

User-Agent  为浏览器的版本信息。在服务器端可以通过这个属性来判断当前用户浏览器的版本

 操作系统,支持的插件,.NET版本等相关的平台信息。

 

 

 

Http响应报文(服务器端到客户端)

Sever :Cassini/3.5.0.5 表示服务器的类型(这个属性可以在服务器端伪造,以防止黑客

根据当前服务器的漏洞来攻击网站)

 

Content-Type :text/html   charset=utf -8 表示返回的数据类型。浏览器将根据这个属性值来

确定如何操作从服务器端返回来的数据信息。

 

服务器端通过Content - Type 告诉客户端响应数据的类型,这样浏览器就根据不同的返回类型

对返回数据做不同的处理,如果是图片类型就显示图片,如果是文本类型就直接显示内容,

如果是html类型 就用浏览器显示内容,如果是下载类型就弹出下载工具等。

 

常用的Content - Type :text/html  Image/GIF  Image/JPEG text/plain   text/javascript

  application/x-excel  application/octet-stream(二进制文件)

 

Content - Length :表示后续数据的消息文本长度(不好过http响应报文),报文只是当前数据的描述

具体数据 在它之后。

 

 

Http响应吗:

浏览器向服务器发送请求,服务器处理可能是成功,也可能是失败,也可能是没有权限访问等。,服务器会

通过响应吗来告诉用户响应的结果。

http 200   ok   表示服务器正确的处理了当前浏览器的请求。

http  301  Moved Permanently   永久移除

http   302  Found  暂时转移

http   307  Temporary Redirect

http   400  Bad Request  错误请求  发出错误的,不符合Http协议的请求。

http   401   Unauthorized  未认证   一般需要用户名和密码才能登陆。

http   403   Forbidden       禁止   页面禁止访问 权限不够 或未授权。

http   404  Not Found  未找到  访问页面没找到,服务器中不存在当前请求的页面。

http   500  Internal Server Error  服务器内部错误

http   503  Service Unavailable  一般是访问任务过多。

 

200段  成功段     300段  请求需要做其他处理      400段 用户请求错误       500段 服务器内部错误

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://net.itheima.com/
原创粉丝点击