http请求:由客户端发送的,发送给服务器使用的

当我们在客户端浏览器 输入网址回车,浏览器会帮我们把请求的数据封装成一个http请求,发送给服务器软件。

一个完整http请求应该包含三个部分:

1. 请求行【描述客户端的请求方式、请求的资源名称,以及使用的HTTP协议版本号】
2. 多个消息头【描述客户端请求哪台主机,以及客户端的一些环境信息等】
3. 一个空行

请求行



请求行:默认1.1长连接, 1.0的以及被淘汰了
格式:请求方式 请求资源 协议版本
例如:POST /myday33/login.html HTTP/1.1

请求行:GET /java.html HTTP/1.1

请求行中的GET称之为请求方式,请求方式有:POST,GET,HEAD,OPTIONS,DELETE,TRACE,PUT。

常用的有:POST,GET

一般来说,当我们点击超链接,通过地址栏访问都是get请求方式。通过表单提交的数据一般是post方式。

可以简单理解GET方式用来查询数据,POST方式用来提交数据,get的提交速度比post快

GET方式:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。

POST方式:可以在请求的实体内容中向服务器发送数据,传送的数据量无限制。

请求头


请求头:客户端发给服务端的一些附加信息
格式:key:value
一个键值对是一个请求头
一次请求可以有任意多个请求头(不限制)
这些服务信息都是浏览器自动封装发给服务器的,


Accept: text/html,image/* 【浏览器告诉服务器,它支持的数据类型】

Accept-Charset: ISO-8859-1 【浏览器告诉服务器,它支持哪种字符集】

Accept-Encoding: gzip,compress 【浏览器告诉服务器,它支持的压缩格式】

Accept-Language: en-us,zh-cn 【浏览器告诉服务器,它的语言环境】

Host: www.it315.org:80【浏览器告诉服务器,它的想访问哪台主机】

If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT【浏览器告诉服务器,缓存数据的时间】

Referer: http://www.it315.org/index.jsp【浏览器告诉服务器,客户机是从那个页面来的—-反盗链】

8.User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)【浏览器告诉服务器,浏览器的内核是什么】

Cookie【浏览器告诉服务器,带来的Cookie是什么】

Connection: close/Keep-Alive 【浏览器告诉服务器,请求完后是断开链接还是保持链接】

Date: Tue, 11 Jul 2000 18:23:51 GMT【浏览器告诉服务器,请求的时间】

请求体

并不是任何时候都有数据的,只有在post提交并且有参数的时候,请求体才有数据,其他情况没有.
格式: name=value&name=value…

http请求的数据发送到服务器软件之后,服务器软件会把http请求的数据封装到一个request对象里面,之后会把request对象传递到我们的Java程序里面(servlet),我们接收到request对象之后,可以从request里面获取到http请求的全部数据.