jsp

位置:IT落伍者 >> jsp >> 浏览文章

JSP总结一:HTTP协议


发布日期:2018年07月24日
 
JSP总结一:HTTP协议

Http协议由Tim BernersLee(被称为Web之父)发明Http协议是完全基于文本的浏览器通过http协议和服务器交互默认是端口也可以显式的在URL中指出端口号比如Http协议是一种无状态协议并且不适合实时的获取数据的应用因为过多实时的客户端和服务端的交互将会导致网络的频繁通信并受到带宽的限制Http协议也不能告诉服务器客户的请求是如何产生的这使得B/S比C/S实现上难度较大
浏览器主要有两种命令和服务器交互一种叫Get另一种叫Post逻辑上看Get命令相当于读操作向服务器发出请求然后获取数据Post命令向服务器发出执行某个动作的指令有可能会修改服务器上的某些数据因此是不可逆的操作我们要防止用户不断的快速刷新页面引发的Post命令通常一个提示对话框让用户确认操作是否真的有必要进行是一种常用的方法
Get命令的格式请求行请求首部请求主体(可选)
GET /indexhtml HTTP/
Host: wwwgefionsoftwarecom
UserAgent: Mozilla/ [en] (WinNT;I)
Accept: image/gif image/jpeg image/pjpeg image/ping*/*
AcceptLanguage : en
AcceptCharset : iso*utf

上面的例子里面第一行是请求行表明是GET命令请求的资源是indexhtml 协议是HTTP后面所有的都是请求首部没有请求主体

服务器的应答格式状态行应答首部应答主体(可选)
HTTP/ OK
LastModified: Mon Dec ::: GMT
Date: Tue Jan :: GMT
Status:
ContentType: text/html
ServletEngine: Tomcat Web Server/
ContentLength:

<html>
<body>
<h>Helloworld!</h>
</body>
</html>

第一行是状态行协议+状态值+状态描述然后是应答首部最后一段html代码是应答主体我们经常能看到状态值为的回应代表未被授权
如果应答主体比较复杂里面包含了图片或者其他资源的链接客户端会自动再发出一个Get命令获取相关资源通常这些动作是并行的不过每个浏览器的行为不一样IE似乎表现成串行而Firefox会先将第一个应答主体的内容显示出来在逐个显示内嵌图片的应答主体

Get命令还可加上请求参数请求参数可以接着url后面比如
?a=&b= ?开始&间隔每个参数名称和值对这种方式称为查询字符串由于使用了?=&来作为分隔符所以其他的字符在发送时都采用了URL编码方式以避免混淆欢迎光临学网收藏本篇文章[] []

$False$


也可以将请求参数(格式相同)作为请求主体的一部分发送不过这通常是Post命令的做法
Post命令格式
POST forecast HTTP/
Host: wwwgefionsoftwarecom
UserAgent:Mozilla/ [en] (WinNT; I)
Accept: image/gif image/jpeg image/pjpegimage/png */*
Acceptlanguage: en
Acceptcharset: iso*utf
city=Hermosa+Beach&state=CA

Post行中的 forecast是action的名称后面是协议名注意最后一行的查询字符串没有?开头并且是嵌入在Post主体中的通常Post由form表单触发比如上面的命令对应的form表单为
<form action: “/forecast” method=”POST”>
City: <input name=”city” type=”text”>
State: <input name=”state” type=”text>
<p>
<input type=”SUBMIT”>
</form>
注意这里第一行加了属性method=”POST”如果不加的话默认为GET
HTTP协议的其它方法还有OPTIONSHEADPUTDELETETRACE等五个但是这些方法使用的很少

               

上一篇:解决JSP中拼装数据为XML出现的问题

下一篇:JSP EL表达式详细介绍