玩转Web之servlet(四)---B/S是如何使用http协议完成通信过程的
在上一篇文章中,我简单的说了一下B/S架构的流程图,关于浏览器和服务器之间的通信过程知识含糊的说了一下,在这篇文章中我再总结一下B/S架构里是如何利用http协议去完成通信的。
(一)通讯过程
1:浏览器建立于Web服务器的连接---->2:浏览器将请求数据打包(即请求数据包),并发送到服务器--->3:服务器将处理结果打包(响应数据包),发给浏览器-->4:关闭连接
注意:每次请求都需要重新建立连接
(二):数据格式
请求数据包:1:请求行:请求方式+请求资源路径+协议描述。例如:GET/image/http.png HTTP/1.1 即为从image目录下请求http.png这个文件
2:消息头:通过一些键值对,浏览器向服务器提供浏览器的类型和版本
3:实体内容:如果请求方式为post,会把请求参数添加到实体内容里面,如果是get请求会把请求参数添加到请求资源路径的后面。
响应数据包:1:状态行:协议描述+状态行+状态码
2:响应头:服务器会返回给浏览器一些信息,包括编码格式等
3:实体内容:返回的处理结果
(三)请求方式
常用的请求方式是get和post,只少目前我只使用这两种方式
get请求: get请求会把请求内容添加到请求资源路径后面,而因为请求资源路径的长度就是浏览器地址栏最大允许字符数,所以get请求可提交的数据非常少,而且请求内容都 显示在地址栏里,存在安全问题
那什么时候使用get请求呢?当直接在地址栏里输入地址,或者使用超链接都是使用get请求,表单提交的默认提交方式也是get提交
post请求:post请求会把请求加到实体内容里,所以可以请求大量数据,同时不会显示在地址栏里,所以相对安全。
当设置表单的提交方式为post时,会使用post请求;在Ajax提交中,设置提交方式为post,也是使用post提交。
玩转Web之servlet(四)---B/S是如何使用http协议完成通信过程的的更多相关文章
- 玩转Web之servlet(四)---B/S是怎样使用http协议完毕通信过程的
在上一篇文章中,我简单的说了一下B/S架构的流程图,关于浏览器和server之间的通信过程知识含糊的说了一下,在这篇文章中我再总结一下B/S架构里是怎样利用http协议去完毕通信的. (一)通讯过程 ...
- 玩转Web之servlet(一)---怎样创建一个servlet
Servlet概念:servlet就是用java编写的服务器端的小程序,用来完成下B/S架构(即浏览器和服务器架构)下客户端请求的响应处理. servlet通常在容器中运行Tomcat是常见的serv ...
- 玩转Web之servlet(三)---一张图看懂B/S架构
学WEB, 首先 要明确B/S架构,本文将简单说一下小编的愚见,若有不当,欢迎大家指正. 首先,什么是B/S架构?B/S是Broweser/Server的缩写,即浏览器/server模式,简单说就是c ...
- 玩转web之servlet(六)---session介绍及简单使用(登录验证中保存信息)
在浏览器与服务器进行交互时,往往需要把涉及到的一些数据保存下来,这时就需要使用cookie或session进行状态管理. 这篇文章先来说说session怎么用,首先在servlet中创建一个sessi ...
- 玩转Web之servlet(五)---- 怎样解决servlet的线程安全问题
servlet默认是存在线程安全问题的,但是说白了,servlet的线程安全问题实际上就是多线程的线程安全问题,因为servlet恰巧是一个多线程才会出现安全性问题. 浏览器每次通过http协议去提交 ...
- 玩转Web之servlet(二)---servlet常见错误
1>403:tomcat发生错误 2> 404 :意思是服务器依据请求资源路径,找不到对应的资源 解决:1.依据http://localhost:8080/Web工程名/ur ...
- SpringBoot系列教程web篇Servlet 注册的四种姿势
原文: 191122-SpringBoot系列教程web篇Servlet 注册的四种姿势 前面介绍了 java web 三要素中 filter 的使用指南与常见的易错事项,接下来我们来看一下 Serv ...
- java web学习总结(四) -------------------HTTP协议
一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...
- Java Web之Servlet
Servlet参考文献: 1.http://www.cnblogs.com/luoxn28/p/5460073.html 2.http://www.cnblogs.com/xdp-gacl/p/376 ...
随机推荐
- win7下怎样设置putty免用户名密码登陆
putty是一款好用的远程登录linux服务器软件,但每次输入用户名密码毕竟有些烦人,这里教你免用户名密码登陆. 工具/原料 putty 方法/步骤 去百度下载putty,小巧易用,仅有0.5 ...
- [SVN]两个分支合并
Date:2014-1-1 Summary: 记录一下自己使用SVN时候的操作步骤,先吃鱼,再学钓鱼 Contents: 环境:从同事的branch迁出一份代码,作为自己的分支进行开发,同时同事也在自 ...
- ORA-00376:file x cannot be read at this time
之前出现过机房断电情况,重启数据库后发现出现ORA-00376的错误. 通过查询数据文件状态: SQL> select file_id,online_status from dba_data_f ...
- ZOJ 1654 二分匹配基础题
题意: 给你一副图, 有草地(*),空地(o)和墙(#),空地上可以放机器人, 机器人向上下左右4个方向开枪(枪不能穿墙),问你在所有机器人都不相互攻击的情况下能放的最多的机器人数. 思路:这是一类经 ...
- PHP操作Mysql中间BLOB场
1.MySQL在BLOB字段类型 BLOB场的类型用于存储二进制数据. MySQL在.BLOB它是一种类型的一系列.含有:TinyBlob.Blob.MediumBlob.LongBlob.大小上不同 ...
- 恶补jquery(四)jquery中事件--冒泡
事件 当我们在打开一个页面的时候.浏览器会对页面进行解释运行,这实际上是通过运行事件来驱动的.在页面载入事件时,运行Load()事件,是这个事件实现浏览器解释运行代码的过程. 事件机制 事件中的冒泡现 ...
- ARM架构和编程-4
ARM中断异常处理: ARM系统中止品种:按中断处理降序排列优先级:重置.数据访问中止.高速中断请求.外部中断请求.预取中止.令.软件中断. ARM体系中的异常中断向量表: 0x0 复位 0x4 没有 ...
- 在C#或者SWT上跨进程访问SWT控件的问题
可能为了进程安全,无论是C#的Form还是Eclipse的SWT,都不允许跨进程访问控件. 通俗一点说就是: A进程创建了控件Widget,若想在B进程中访问控件Widget就会报错,必须在创建Wid ...
- HDU 3304 Interesting Yang Yui Triangle lucas定理
输入p n 求杨辉三角的第n+1行不能被p整除的数有多少个 Lucas定理: A.B是非负整数,p是质数.AB写成p进制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0] ...
- (适合入门)JVM堆内存相关的启动参数:年轻一代、岁和永久代内存分配
假设你要观察JVM进程消耗的堆内存,通过命令工具jmap或可视化工具jvisualvm.exe.JVM这些参数的默认启动值.假设你想知道JVM内存分配策略,最开始手动设置这些参数.通过JDK统计结果, ...