Http协议简单入门
大家在开发web 应用的时候对浏览器访问服务器之间通过Http 协议访问可能有一点概念不清楚。下面是本人自己的理解,不一定全对。仅供参考。
1.http 协议是超文本传输协议,可以传输文本, 图片,影音等。
2. 在地址栏中输入url www.baidu.com 这个时候对域名解析,然后通过Tcp/ip 找到对应的服务器。http 协议 就会找到服务器中具体的应用。
举例子:http://localhost:8080/hello/index.jsp localhost:8080是tcp/ip 协议找服务器。http 协议 找到hello 项目中访问的index.jsp
3.具体分析 你点击访问地址之后,浏览器与服务器是怎么通信的。 大家可以装一个httpwatch 工具 获取http 数据观察一下。
下面是 客户端向服务器发送的数据,下面分析一下具体的应用
POST /ItheimaWeb/question01 HTTP/1.1 // post 请求方式 http/1.1 是请求的版本
Accept: text/html, application/xhtml+xml, */* // Accept 浏览器可以接受的MIME 类型(文件系统是采用扩展名区分不同的文件的,网络上是用MIME 类型来区分不
同的文件。有一定的对应关系,例如服务器tomcat 上 web.xml 有对应的信息,其它服务都有,jboss,weblogic等
Referer: http://localhost:8080/ItheimaWeb/index.jsp // referer 是记录上一次的浏览地址
Accept-Language: zh-CN // Accept 接收语言的类型
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) //浏览器类型
Content-Type: application/x-www-form-urlencoded //内容输入的 类型
Accept-Encoding: gzip, deflate // 接受的编码格式 。gzip 是之后压缩后的文件传输浏览器可以解析。
Host: localhost:8080 // 主机和端口号
Content-Length: 27 // 正文长度 字节单位
Connection: Keep-Alive //保持有效的链接
Cache-Control: no-cache //网页的缓存
Cookie: JSESSIONID=D038FB1AD880121B899805E4B95CDA1D // cookie 会话管理
username=asdf&password=asdf //正文内容
客户端将信息发送给服务器会得到服务的一个响应,响应头文件如下:
响应消息头:从第二行开始,至第一个空行结束。
*Location: http://www.it315.org/index.jsp //指示新的资源的位置 302+该头:完成是请求的重定向。
Server:apache tomcat // 指示服务器的类型
*Content-Encoding: // 告知客户端服务器发送的数据采用的编码类型gzip(压缩格式)
*Content-Length: 80 //告诉浏览器正文的长度
Content-Language: zh-cn //服务发送的文本的语言
*Content-Type: text/html //默认的; 告知客户端请求正文的MIME类型
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT //文件的最后修改时间
*Refresh: 1;url=http://www.it315.org //指示客户端刷新频率。单位是秒
*Content-Disposition: attachment; filename=aaa.zip //指示客户端下载文件,并制定文件的位置
*****Set-Cookie:SS=Q0=5Lb_nQ; path=/search服务器端发送的Cookie(会话管理)
Expires: -1 控制浏览器不要缓存
Cache-Control: no-cache (1.1)
Pragma: no-cache (1.0)
Connection: close/Keep-Alive //保持连接
Date: Tue, 11 Jul 2000 18:23:51 GMT
总结的不是很好,最后是动手实践一下,就会明白。