前言:
想了解 HTTP协议内容的可以参考:
https://blog.csdn.net/qq_38409944/article/details/80628723
URL: 统一资源定位符。http://localhost:8080/day09/testImg.html。只能定位互联网资源。是URI的子集。
URI: 统一资源标记符。/day09/hello。用于标记任何资源。可以是本地文件系统,局域网的资源(//192.168.14.10/myweb/index.html),可以是互联网。
首先看一下Get和Post之间的差异:
注意:当页面刷新的时候,数据会自动重新提交,但是没有提醒
Get:
GET提交参数数据有限制,不超过1KB。
GET方式不适合提交敏感密码。
浏览器直接访问的请求,默认提交方式是GET方式
地址栏(URI)会跟上参数数据。以?开头,多个参数之间以&分割。
POST:
POST提交的参数数据没有限制。
POST方式提交敏感数据。
参数不会跟着URI后面。参数而是跟在请求的实体内容中。
没有?开头,多个参数之间以&分割。
表单的话 一般都是POST提交。
GET提交的话 账号密码都会显示在URL中,如:
http://localhost:8080/haha/zz?name=11&password=d
而POST提交的话,账号密码不会显示,而是放在HTTP协议中的实体内容中
看一下前后台交互的原理图:
核心的API:
请求行:
request.getMethod(); 请求方式 GET 还是POST
request.getRequetURI() 请求资源的URI位置
// request.getRequetURL() 请求资源的URL位置
request.getProtocol() 请求http协议版本
请求头:
request.getHeader("名称") 根据请求头获取请求值
request.getHeaderNames() 获取所有的请求头名称
实体内容:
request.getInputStream()