简要说一下http请求报文的格式:
HTTP请求包括三部分:请求行(Request Line),头部(Headers)和数据体(Body)。其中,请求行由请求方法(method),请求网址Request-URI和协议 (Protocol)构成,而请求头包括多个属性,数据体则可以被认为是附加在请求之后的文本或二进制文件。
get 请求表示客户端请求一个uri,服务器返回客户端请求的uri,post请求表示客户端请求的时候还要提交数据,比如提交form表单,要提交的数据会放到请求报文的body部分,服务器收到后这样的请求后通常需要来处理这些数据。
get请求是将数据放在请求的url之后,是一个以"?"打头的查询字符串,比如常见的test.jsp?name=aaa&age=10这种格式,这个是可以直观看到的,(登陆的用户名和密码可不能用get哦)。由于http协议的限制,这样放在url之后的get请求的数据是受大小限制的,最大长度不超过256字符(好像是,可能和web服务器有关)。
为了能够传输更多的数据,可以采用post请求,post请求是将数据放到了http的Content中,这就无大小的限制了,而且传输的数据不能直接被看到(登陆的用户名和密码一般采用post请求),大量的数据或是文件上传,都只能用post来传输。
简单的说,get是通过http header来传输数据,有数量限制,而且可见,而post则是通过http body来传输数据,没有数量限制。
再说servlet中的doget和dopost方法
web服务器处理这些请求的时候,如果客户端提交的是get请求,则响应doget方法,如果客户端提交的是post请求,则响应dopost方法。这是web服务器在响应doservice方法时,由doservice方法分发下来的(详情请查看http协议和servlet生命周期方面的文章)
posted on 2008-06-19 00:28
张老三 阅读(4796)
评论(2) 编辑 收藏