HTTP协议简介
- WEB浏览器与WEB服务器之间的一问一答的交互过程,必须遵循一定的规则,这个规则就是HTTP协议
- HTTP是HyperText Transfer Protocol即:超文本传输协议的简写,他是TCP/ip协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式
- HTTP协议是学习javaWEB的基石,不深入了解HTTP协议就不能说掌握了WEB开发,更无法维护一些复杂的WEB站点
HTTP基本运行方式
- 基于HTTP协议的客户、服务器模式的信息交换过程,分四个过程:建立连接,发送请求信息、发送响应信息、关闭连接
-
- 浏览器与WEB服务器的连接过程是短暂的,每次连接只处理一个请求和响应。所以他有个短连接的特点
- 浏览器到WEB服务器之间的所有通信都是完全独立分开的请求和响应
- 在HTML页面中如果包含 标记的话,当浏览器解析到这些标记时,还会向服务器请求访问标记中指定的文件,再次建立连接发出HTTP请求。
- 如果HTML页面中有一个超级连接:itcast当点击这个连接是也会触发浏览器与WEB服务器开始一次新HTTP通信
HTTP协议的特点
* 在一个TCP连接可以穿多个http请求和响应
* 多个请求和响应可以重叠
* 增加了更的请求头和响应头
* 短连接
* 一个完整的HTTP请求包括以下内容
* HTTP消息头
* 使用消息头可以实现Http客户机与服务器之间的条件请求和应答,消息头相当于服务器和浏览器之间的一个暗号,消息头字段名不区分大小写,但是首字母习惯上大写
* 每个消息头包含一个头字段名称,然后依次是冒号、空格、值、回车和换行符,整个消息头部分中的歌消息头可以按任何顺序排列
* 消息头又可分为通信消息头、请求头、响应头、实体头等四类
* 许多请求头字段都允许客户端在值部分指定多个可接受的选项,多个选项之间可以以都好隔开
* 有些字段可以穿线多次,如:响应信息中可以包含多个Warning字段
* 请求行
* 格式:求情方式资源路径HTTP版本号
* 例:GET/temp3o116.shtml HTTP/1.1
* 请求方式:GET、post、head、options、delete、trace、put
* 用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,如:点击超链接都是get,入股改为POST可通过更改表单的提交方式实现
* 不管是get还是post,都向服务器请求某个WEB资源,两种方式主要区别在数据传递上
* get方式
* get方式传参可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据已&分割
* 例:get/mail/1.html?name=abc&password=xyz HTTP/1.1
* post
* 请求方式若是为post方式,则可以在请求的正文的内容向服务器发送数据,post方式的特点:传输数据无限制
* 状态行
* 格式HTTP版本号 状态码 原因叙述
* 例:HTTP/1,1 200 OK
* 状态码用于表示服务器对请求的各种不同处理结果和状态,为一个三位的十进制数,响应吗分为5类,使用最高位1到5来进行分类如下
各种状态码
F:\笔记\笔记整理\JDBC\HTTP状态码_百度百科.mht
复制粘贴到浏览器打开
HTTP请求的细节–请求头1
- 请求头用于客户端在请求消息中向服务器传递附加信息,主要包括客户端可以接受的数据类型,压缩方法、语言以及发出请求的超链接所属页面的URL地址等信息
- 常用请求头
- Accept:浏览器可以接受的 MIME类型(MIME:Tomcat安装目录/conf/web.xml)
- Accept-Charset:浏览器通过这个头告诉服务器,支持那种字符集
- Accept-Encoding:浏览器能够进行解码的数据编码方式,如:gzip
- Accept-Language:浏览器希望接受语言的种类,当服务器能够提供一种以上的语言版本时要用到,可以在浏览器中进行设置
- Host:初始:URL中的主机和端口
- Referer:包含一个URL,用户从该URL代表的页面出发访问当亲请求的页面
- Content-Type:满足内容类型
HTTP请求的细节–请求头2
- If-Modified-Since:Wed,02 Feb 2011 12:04:56 GMT利用这个头与服务器的文件进行对比,如果一致,则从缓存中直接读取文件
- User-Agent:浏览器的类型
- Content-Length:请求消息正文的长度
- Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1会默认进行持久连接
- Cookie:最重要的请求头信息之一
- Date:Date: Mon, 22 Aug 2011 01:55:39 GMT请求时间GMT
HTTP响应细节–常用响应头1
- 响应头字段用于向客户端传递附加信息
- 常用响应头
- Location: http://www.it315.org/index.jsp指示新的资源的位置
- Server:apache tomcat指示服务器的类型
- Content-Encoding: gzip服务器发送的数据采用的编码类型
- Content-Length: 80 告诉浏览器正文的长度
- Content-Language: zh-cn服务发送的文本的语言
- Content-Type: text/html; charset=GB2312服务器发送的内容的MIME类型
- Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT文件的最后修改时间
- Refresh: 1;url=http://www.it315.org指示客户端刷新频率。单位是秒
HTTP响应细节–常用响应头2
* 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