在上一篇文章中,我简单的说了一下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提交。

转载于:https://www.cnblogs.com/oversea201405/p/3752171.html

玩转Web之servlet(四)---B/S是如何使用http协议完成通信过程的相关推荐

  1. 玩转Web之servlet(一)---怎样创建一个servlet

    Servlet概念:servlet就是用java编写的服务器端的小程序,用来完成下B/S架构(即浏览器和服务器架构)下客户端请求的响应处理. servlet通常在容器中运行Tomcat是常见的serv ...

  2. 【Microsoft Azure 的1024种玩法】二十四.通过Azure Front Door 的 Web 应用程序防火墙来对 OWASP TOP 10 威胁进行防御

    [简介] 我们都知道像 SQL 注入.跨站点脚本攻击(XSS)之类的恶意攻击以及 OWASP 发现的十大威胁都可能会导致服务中断或数据丢失,让 Web 应用程序所有者受到巨大威胁.那么如何有效的解决O ...

  3. java cxf 入口统一_分分钟带你玩转 Web Services【2】CXF

    在实践中一直在使用 JAX-WS 构建 WebService 服务,服务还是非常稳定.高效的. 但还是比较好奇其他的 WebService 开源框架,比如:CXF/Axis2/Spring WS等. ...

  4. 使用Intellij idea新建Java Web项目(servlet) 原理及初步使用

    准备 JDK       (配置JDK_HOME\bin   和 CLASSPATH)   注:JDK8下载已经需要注册了,请使用JDK11(现在是官方长期支持的版本)     对于我们新手来说,JD ...

  5. 【Microsoft Azure 的1024种玩法】七十四.五分钟在Azure Virtual Machines中快速部署一套软件项目管理及自动构建工具

    [简介] Apache Maven由 Apache 软件基金会所提供的一个软件项目管理及自动构建工具,Maven 为开发者提供了一套完整的构建生命周期框架.开发团队几乎不用花多少时间就能够自动完成工程 ...

  6. Web阶段--Servlet基础知识点

    Web阶段–Servlet基础知识点 一.静态页面与动态页面 1.静态页面 概念:在Web模型中,页面中的信息是在html文件中定义好的,数据不会改变,称为"静态页面",无法根据用 ...

  7. 【Microsoft Azure 的1024种玩法】五十四. 十分钟快速上手创建部署Azure speech服务

    [简介] Azure语音服务是Microsoft提供稳定可靠的云通信服务,其在单个 Azure 订阅中统合了语音转文本.文本转语音以及语音翻译功能,我们可以通过各种方式(语音 CLI.语音 SDK.S ...

  8. Java web开发——Servlet详细介绍

    一.第一个Servlet程序 1.创建Servlet程序 在webapps目录下新建一个serfis的web应用,在serfis下新建一个WEB-INF\classes,在classes新建servl ...

  9. 初学Java Web(4)——Servlet学习总结

    经过一段时间的学习,对于Servlet有了新的不一样的见解,在这里做一下总结,将近来学习到的知识总结一下. Servlet 的请求流程 浏览器发出请求:http://localhost:80/xxx1 ...

最新文章

  1. 在SQL Server中保存和输出任意类型的文件
  2. 哔哩哔哩软测三面,面试题复盘
  3. python——画一个笑脸
  4. 劳动力工资调整模型的探讨——数学建模
  5. ffmpeg 怎么用
  6. 使用Def文件导出dll
  7. Istio1.5 Envoy 数据面 WASM 实践
  8. swing 选择对话框_Java Swing –日期选择器对话框
  9. java canvas 缩放图片_java-GWT:放大和缩小画布绘图
  10. 高程(三)笔记---- 第三章
  11. 关于:程序兼容多种数据库
  12. Java 帝国对 Python 的渗透能成功吗?
  13. linux 5.5 外接usb2.0硬盘,RHEL5 使用pam_usb
  14. 使用DirectPlay进行网络互联(1)
  15. 三年建模师告诉你3DMAX有没有前途
  16. 10种常用数据分析方法
  17. 浅谈IAST,DAST,SAST之区别
  18. codeforces 1183H
  19. 北斗卫星轨道有哪些?
  20. 深圳弘辽科技电商:拼多多“砍单免费拿”:一场关于人性的较量

热门文章

  1. Github上传代码截图过程
  2. springboot-vue简单小项目搭建
  3. 在sublime text 3中安装中文支持
  4. 【转载】linux中误删除oracle数据文件的恢复操作
  5. 通俗易懂的泰勒展开微积分推导过程
  6. WeakHashMap垃圾回收原理
  7. INamingContainer接口解决多个自定义控件ID冲突
  8. c#跨线程操作控件(有UI操作)|及多线程操作
  9. git传代码到github
  10. Fis3的前端工程化之路[三大特性篇之资源定位]