Web方面的东西,实际上挺多挺杂的,所以有的时候就需要一些整理,今天这里来简单介绍一下Http协议,算是对之前学习一些东西的整体,希望对自己或者对一些人有些帮助。
首先从Http协议说起,Web浏览器和Web服务器之间进行通信需要遵循一定的规则,这个规则就是Http协议。这个地方很好理解,就像人与人之间的交流一样,只有在语言相通的情况下才能知道对方想要表达的意思。
HTTP是HyperText Transfer Protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式。
基于HTTP协议的客户/服务器模式的信息交换过程。
上图是Http协议的运行方式,它分四个过程,建立连接、发送请求信息、发送响应信息、关闭连接。
这里有几点需要注意,
1、浏览器与Web服务器的连接过程是短暂的,每次连接只会处理一个请求和响应。
2、对于每一个页面的访问,浏览器和Web服务器都会建立一个单独的连接。
3、浏览器和Web服务器之间的所有通讯都是完全独立分开的请求和响应。
这几点对于后面的学习Servlet时对于Servlet的理解很重要。
我们这里用firefox带的开发者选项中的浏览器控制台可以查看一次请求时,Http协议的具体数据。
一个完整的HTTP响应包括如下内容:一个状态行、若干消息头、以及响应正文,其中的一些消息头和正文都是可选的,消息头和正文内容之间要用空行隔开。
下面分别是对Http请求头和Http响应头的具体解释:
请求头:
accept:浏览器通过这个头告诉服务器,它所支持的数据类型
Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
Host:浏览器通过这个头告诉服务器,想访问哪台主机
If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
响应头
Location: 服务器通过这个头,来告诉浏览器跳到哪里
Server:服务器通过这个头,告诉浏览器服务器的型号
Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
Content-Language: 服务器通过这个头,告诉浏览器语言环境
Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
Refresh:服务器通过这个头,告诉浏览器定时刷新
Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
Expires: -1 控制浏览器不要缓存
Cache-Control: no-cache
Pragma: no-cache
对Http协议的介绍就到这里,后面会介绍一下Servlet,到时会有对Http协议简单应用。