关于servlet和jsp的学习总结二(详细)

一、     HTTP协议简介

1、http协议是基于请求响应模式的协议,客户端发送一个请求(此请求用http协议进行包装),服务器端经过处理后发送给客户端(也用http协议进行包装)。此协议是以tcp/ip为基础的,现在广泛使用的是1.1版本

2、http请求(request)

     A:请求方法/URL/版本

     B:请求头

     C:请求正文(注:请求头与请求正文之间是一行空格,表示请求头已经完毕)

D:在这里还要详细讲一下关于http协议中的用于请求的get()何post()方法

1>.HTTP协议的格式:为了理解两者在传输过程中的不同,我们先看一下HTTP协议的格式:  HTTP请求:

<request line> //用来说明请求类型(主要说明是get()还是post()方法)、要访问的资源以及使用的HTTP版本
<headers> //紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息
<blank line> 中间的空行
[<request-body>]//请求正文添加任意的其他数据[

2>下来以用httplook这个软件截取的实例详细说明

Get实例:

GET /books/?sex=man&name=Professional HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive

Post实例

POST / HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive
     (----此处空一行----)
name=Professional%20Ajax&publisher=Wiley

注意:两者url放置的区别

3>HTTP-GET和 HTTP-POST是使用HTTP的标准协议动词,用于编码和传送变量名/变量值对参数,并且使用相关的请求语义。每个HTTP-GET和HTTP- POST都由一系列HTTP请求头组成,这些请求头定义了客户端从服务器请求了什么,而响应则是由一系列HTTP应答头和应答数据组成,如果请求成功则返回应答。
  HTTP-GET以使用MIME类型application/x-www-form-urlencoded的urlencoded文本的格式传递参数。 Urlencoding是一种字符编码,保证被传送的参数由遵循规范的文本组成,例如一个空格的编码是"%20"。附加参数还能被认为是一个查询字符串。(GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接;例如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如: %E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。)
 4> 与HTTP-GET类似,HTTP-POST参数也是被URL编码的。然而,变量名/变量值不作为URL的一部分被传送,而是放在实际的HTTP请求消息内部被传送。

(1)   get是从服务器上获取数据,post是向服务器传送数据。

(2)   在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。

(3)   对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

(4)   GET方式提交的数据长度受浏览器URL长度的限制,而POST则没有此限制。(特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。)

(5)   安全性问题。正如在(2)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用post为好。


2、http响应(response)

       A:协议/状态码/描述

       B:响应头

       c:响应正文(头与正文之间是一个空行)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值