当前位置: 首页 > news >正文

Web后端开发之前后端交互

http协议

http

● 超文本传输协议 (HyperText Transfer Protocol)服务器传输超文本到本地浏览器的传送协议

是互联网上应用最为流行的一种网络协议,用于定义客户端浏览器和服务器之间交换数据的过程。

HTTP是一个基于TCP/IP通信协议来传递数据.

HTTP是一个属于应用层的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统.

在这里插入图片描述

http请求

从前端向后端发送的请求,都是http请求,

http请求只能发,超文本内容(超链接,提交表单 都是发送http请求)

一次http请求中包含请求行,请求头,请求体三部分

请求行

请求的方式,请求的资源,请求的地址

请求头包含主机地址,以及客户端的一些环境信息,以键值对的形式传递.

Host: 127.0.0.1:8088 请求的主机地址

Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8
浏览器能够处理的内容类型

Accept-Encoding: gzip, deflate, br 浏览器能够处理的压缩编码

Accept-Language: zh-CN,zh;q=0.9 浏览器当前设置的语言

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/69.0.3497.100 Safari/537.36 使用的浏览器和操作平台信息

Connection: keep-alive 浏览器与服务器之间连接的类型

请求头

包含主机地址以及客户端的一些环境信息,这些信息都是由浏览器自动发送的,以键值对的形式传递

请求体

以表单post方式向后端发送请求数据,在请求体中包含

get请求

get请求主要是从后端获取信息,例如网页上的超链接

向后端传递少量信息,获得大量信息,

请求数据在请求地址中直接拼接(键=值&键=值),所以传输的数据量有限

并且敏感数据不安全

post请求

post请求主要用于向后端发送大量信息,

请求数据在请求体中,可以传输大量数据,不会再地址中显示,所以相对安全

doget与dopost

由于前端请求有get与post,在后端处理上略有不同

所以在父类的service方法中,会根据请求方式的不同,调用doget或者dopost方法分别处理

处理post请求中文乱码
request.setCharacterEncoding(编码格式,一般是utf-8)

@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("doget");String name = req.getParameter("name");String age = req.getParameter("age");System.out.println(name);System.out.println(age);System.out.println(req.getMethod());System.out.println(req.getProtocol());System.out.println(req.getServerName());System.out.println(req.getServerPort());System.out.println("===================");System.out.println(req.getRemoteAddr());System.out.println(req.getRemoteUser());System.out.println(req.getRemotePort());//获得请求头数据System.out.println(req.getHeader("User-Agent"));}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");String account = req.getParameter("account");String password = req.getParameter("password");System.out.println(account);System.out.println(password);}

其他方法

getMethod()得到客户机请求方式
getScheme()请求协议
getRemoteAddr()返回发出请求的客户机的IP地址
getServerName()服务器名(ip或域名)
getServerPort()服务器端口

Get方式与post方式的区别

1,Get方式主要是从服务器获取信息;

post主要是想服务器提交信息

2,Get方式在通过URL提交数据,数据在URL中可以看到;

POST方式,数据放置在请求体中提交。

3,GET方式提交的数据大小受限制一般1kb(不同浏览器也会有不同);

而POST则没有此限制。

http响应

使用getWriter()可以获得一个PrintWriter字符输出流输出数据

通过 resp.setContentType(“text/html;charset=utf-8”);设置输出解码为utf-8

可以同时设定response所使用的字符集编码和浏览器打开所用的字符集编码。

http://www.lryc.cn/news/388054.html

相关文章:

  • 520. 检测大写字母 Easy
  • vue的跳转传参
  • docker配置镜像源
  • MySQL高级-SQL优化-insert优化-批量插入-手动提交事务-主键顺序插入
  • 认识100种电路之振荡电路
  • SSH 无密登录配置流程
  • Python自动化运维 系统基础信息模块
  • 如何安装和配置Monit
  • 【redis】redis分片集群基础知识
  • Python 面试【★★★★】
  • Knife4j 2.2.X 版本 swagger彻底禁用
  • linux下mysql的定时备份
  • 【13】地址-比特币区块链的地址
  • 【数据结构】数据结构前置知识
  • 企业数据挖掘平台产品特色及合作案例介绍
  • C++初学者指南-3.自定义类型(第一部分)-基本自定义类型/类
  • iOS之如何创建.framework静态库
  • C程序设计谭浩强第五版
  • 石油化工厂为什么要用专业防爆手机?
  • 文本生成sql模型(PipableAI/pip-sql-1.3b)
  • 机器学习中的数学底蕴与设计模式
  • 【Android面试八股文】性能优化相关面试题:如何查找CPU占用?
  • 面试框架一些小结
  • c# 往window注册表写入数据后,未写入指定的路径
  • 树莓派4B_OpenCv学习笔记13:OpenCv颜色追踪_程序手动调试HSV色彩空间_检测圆
  • Golang | Leetcode Golang题解之第198题打家劫舍
  • 基于ruoyi-app的手机短信登录(uniapp)
  • 机器学习环境搭建
  • 2095.删除链表的中间节点
  • Qt QML 坑