2.2HTTP协议
2.2.1HTTP概述
1.HTTP介绍
HTTP 超文本传输协议 hyper text transfer protocol ,它是一种请求/响应式的协议,HTTP的特点
(1)支持客户端(浏览器就是一种web客户端)/服务器模式
(2)简单快速,客户端向服务器请求服务时只需传送请求方式和路径
http1.0:
http1.1:无需等待结果就可发送下一个请求 按请求顺序依次返回。
2.2.2HTTP请求消息
一个完整的请求消息是由请求行+请求头+实体内容三部分组成。
1.HTTP请求行:
包括三部分 请求方式、资源路径、所用的HTTP版本
GET/index.html HTTP/1.1
GET
POST 向指定资源提交数据,请求服务器进行处想(例如提交表单或者上传文件)
OPTIONS
HEADPUT
DELETE
RACE
CONNECT 请求查询服务器的性能或者查询与资源相关的选项和需求
(1)GET方式 裸奔
当用户在浏览器地址栏中直接输入某个URL地址或者单击网页上的一个超链接时,浏览器将使用GET方式发送请求。如果将网页上的form表单的method属性设置为“GET” 或者不设置method属性(默认值是GET),当用户提交表单时,浏览器也将使用GET方式发送请求。
如果浏览器请求的URL中有参数部分,在浏览器生成的请求消息中,参数部分将附加在请求行中的资源路径后面。先来看一个URL地址,具体如下。
http://www . itcast .cn/javaForum?name=lee&psd-hnxy
当浏览器向服务器发送请求消息时,上述URL中的参数部分会附加在要访问的URI资源后面,具体如下所示。
GET/javaorum?name=lee&psd=hnxy HTTP/1.1
需要注意的是,使用GET方式传送的数据量有限,最多不能超过2KB
2)POST方式(长度无限制,更安全)隐藏在实体中。
如果网页上om表单的mtd属性设置为POST当用户提交表单时,浏流器将使用POST方式提交表单内容,并把各个表单元素及数据作为HTTP消息的实体内容发送给服务器,而不是作为UR地址的参数传速
POST /javaForum HTTP/1.1 协认版本
Host: www.itcast.cn 主机名
Content-Type: application/x-www- form-urlencoded
Content-Length: 17
name=lee&psd=hnxy
- POST传输数据大小无限制
由于GET请求方式是通过请求参数传递数据的,因此最多可传适方式是通过实体内容传递数据的,因此可以传递数据的大小没有限
- POST比GET请求方式更安全
由于GET请求方式的参数信息都会在URL地址栏明文显示,而隐藏在实体内容中,用户是看不到的,因此,POST比GET请求方式
2. HTTP请求消息头
在HTTP请求消息中,请求行之后便是若干请求消息头。请求消递附加消息,例如(客户端可以接收的数据类型、压缩方法、语言以8I面的URL地址等信息)
(1)Accpet 用于指出客户端程序能够处理的MIME类型
(2)Accpet-Enconding 指出客户端能够进行解码的编码方式
(3)Host 指出资源所在的主机名和端口号
2.2.3HTTP响应消息
当服务器收到浏览器的请求后,会回送响应消息给客户端。一个完整的响应消息以应包括响应状态行、响应消息头和实体内容
1. HTTP响应状态行
HTP响成状态行于响应消息的第1行它包括3个部分,分别是http版本、表示成功或失败的三位整数代码(状态码)、对状态码描述的文本信息,具体示例如下,
HTTP/1.1 200 OK
上面的示例就是一一个HTTP响应消息的状态行,其中HTP 1.1是通信使用的协议后本200是状态码),OK是状态描述,说明客户端请求成功。需要注意的是,请求行中的每个部分需要用空格分隔,最后要以回车换行结束。
状态代码由 3位数字组成,表示请求是否被理解或被满足。HTTP响应状态码的第1个数字定义了响应的类别,后面两位没有具体的分类,第1个数字有5种可能的取值,具体介组如下所示。
- 1xx:表示请求已接收,需要继续处理。
- 2xx:表示请求已成功被服务器接收、理解并接受。
- 3xx;为完成请求,客户端需进一步细化请求。
- 4xx:客户端的请求有错误。
- 5xx;服务器端出现错误。