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请求的全部数据.