在上一篇文章中,我简单的说了一下B/S架构的流程图,关于浏览器和server之间的通信过程知识含糊的说了一下,在这篇文章中我再总结一下B/S架构里是怎样利用http协议去完毕通信的。

玩转Web之servlet(四)---B/S是怎样使用http协议完毕通信过程的_请求数据

(一)通讯过程

     1:浏览器建立于Webserver的连接---->2:浏览器将请求数据打包(即请求数据包),并发送到server--->3:server将处理结果打包(响应数据包),发给浏览器-->4:关闭连接

注意:每次请求都须要又一次建立连接

(二):数据格式

请求数据包:1:请求行:请求方式+请求资源路径+协议描写叙述。比如:GET/image/http.png HTTP/1.1  即为从image文件夹下请求http.png这个文件

                        2:消息头:通过一些键值对,浏览器向server提供浏览器的类型和版本号

                        3:实体内容:假设请求方式为post,会把请求參数加入到实体内容里面,假设是get请求会把请求參数加入到请求资源路径的后面。

响应数据包:1:状态行:协议描写叙述+状态行+状态码

                         2:响应头:server会返回给浏览器一些信息,包含编码格式等

                        3:实体内容:返回的处理结果

(三)请求方式

经常使用的请求方式是get和post,仅仅少眼下我仅仅使用这两种方式

get请求: get请求会把请求内容加入到请求资源路径后面,而由于请求资源路径的长度就是浏览器地址栏最大同意字符数,所以get请求可提交的数据很少,并且请求内容都                      显示在地址栏里,存在安全问题

                  那什么时候使用get请求呢?当直接在地址栏里输入地址,或者使用超链接都是使用get请求,表单提交的默认提交方式也是get提交

post请求:post请求会把请求加到实体内容里,所以能够请求大量数据,同一时候不会显示在地址栏里,所以相对安全。

                   当设置表单的提交方式为post时,会使用post请求;在Ajax提交中,设置提交方式为post,也是使用post提交。