简介:
HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。
HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。
HTTP协议的版本:HTTP/1.0、HTTP/1.1
在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。
HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。
客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容:
一个请求行、若干消息头、以及实体内容,如下所示 :
请求行中的GET称之为请求方式,请求方式有:
POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
常用的有: GET、 POST
用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,
用户如想把请求方式改为post,可通过更改表单的提交方式实现。
一个HTTP响应代表服务器向客户端回送的数据,它包括:
一个状态行、若干消息头、以及实体内容 ,如下所示 :
1、HTTP请求
* 分类:请求行、请求头、请求体
* 请求行:描述请求的资源
* 格式:请求方法 资源路径 协议
* 例如:GET /day04/1.html HTTP/1.1
* 请求方法
* GET:请求内容追加在URL之后
* URL的长度有限制1k
* POST:请求内容放置在请求体中
* 请求头
* Accept:浏览器通知服务器,浏览器可以接受的数据类型
* Accept-charset:浏览器通知服务器,浏览器支持的字符集
* Accept-Encoding:浏览器通知服务器,浏览器支持的压缩格式
* Accept-Language:浏览器通知服务器,浏览器支持的语言环境
* Host:浏览器通知服务器,浏览器访问的服务器的主机名
* If-Modified-since:浏览器询问服务器,浏览器本地是否修改过
* Referer:浏览器通知服务器,浏览器当前页来自哪个页面
* 防盗链
* user-agent:浏览器通知服务器,浏览器端的基本信息
* cookie:
* connection:浏览器保持服务器,是否保持连接状态
* Date:浏览器通知服务器,浏览器端的时间
* 请求体
* 请求体与请求头之间存在一个空行
2、HTTP响应
* 分类:响应行 响应头 响应体
* 响应行:协议 状态码 状态信息
* 例如:HTTP1.1 200 ok
* 状态码:服务器通知浏览器的行为,执行过程
* 1xx:服务器通知浏览器,服务器还没有处理完成
* 2xx: 服务器通知浏览器,服务器已经处理完成
* 200:处理完成
* 3xx: 服务器通知浏览器,服务器还需要浏览器进一步处理来完成整个操作
* 302:服务器通知浏览器需要进一步操作,从http相应头获(location)得进一步操作的资源
* 304:服务器通知浏览器当前资源没有修改,从缓存中获取
* 4xx:服务器通知浏览器,浏览器发送数据有误
* 401:没有权限
* 404:找不到资源
* 5xx:服务器通知浏览器,服务器出现异常
* 500:服务器异常
* 503:服务器未响应
* 响应头
HTTP请求中的常用响应头
Location: --跳转方向
Server:apache tomcat --服务器型号
Content-Encoding: gzip --数据压缩
Content-Length: 80 --数据长度
Content-Language: zh-cn --语言环境
Content-Type: text/html; charset=GB2312 --数据类型
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT --最后修改时间
Refresh: 1;url= --定时刷新
Content-Disposition: attachment; filename=aaa.zip --下载
Set-Cookie:SS=Q0=5Lb_nQ; path=/search
Expires: -1 --缓存
Cache-Control: no-cache --缓存
Pragma: no-cache --缓存
Connection: close/Keep-Alive --连接
Date: Tue, 11 Jul 2000 18:23:51 GMT --时间
* 响应体:服务器响应浏览器所有的内容
* 注意:响应头与响应体之间存在一个空行
阅读(797) | 评论(0) | 转发(0) |