【JavaWeb】XML Tomcat10 HTTP-三、HTTP

时间:2024-01-21 10:04:19

1

HTTP 超文本传输协议 (HTTP-Hyper Text transfer protocol),是一个属于应用层的面向对象的协议。
它是一种详细规定了浏览器和万维网服务器之间互相通信的规则
客户端发送给服务器的称为"请求报文",服务器发送给客户端的称为"响应报文"。

3.1 HTTP协议的会话方式

浏览器与服务器之间的通信过程要经历四个步骤:
1

  • 浏览器与WEB服务器的连接过程是短暂的,每次连接只处理一个请求和响应
  • 对每一个页面的访问,浏览器与WEB服务器都要建立一次单独的连接
  • 浏览器到WEB服务器之间的所有通讯都是完全独立分开的请求和响应对

3.2 请求和响应报文

在浏览器中通过F12工具抓取请求响应报文包
1

3.3.1 报文的格式

主体上分为报文首部和报文主体,中间空行隔开
1
报文部首可以继续细分为 “行” 和 “头”
2

3.3.2 请求报文

客户端发给服务端的报文

请求报文格式 :

  • 请求首行(请求行); GET/POST 资源路径?参数 HTTP/1.1
  • 请求头信息(请求头);
  • 空行;
  • 请求体;POST请求才有请求体
    1

3.3.3 GET 与 POST

form表单发送GET请求特点 :
1、由于请求参数在请求首行中已经携带了,所以没有请求体,也没有请求空行
2、请求参数拼接在url地址中,地址栏可见[url?name1=value1&name2=value2],不安全
3、由于参数在地址栏中携带,所以由大小限制[地址栏数据大小一般限制为4k],只能携带纯文本
4、get请求参数只能上传文本数据
5、没有请求体。所以封装和解析都快,效率高, 浏览器默认提交的请求都是get请求比如:地址栏输入回车,超链接,表单默认的提交方式

查看GET请求行,请求头,请求体 :

请求行组成部分

  • 请求方式 GET
  • 访问服务器的资源路径?参数1=值1&参数2=值2 … …
  • 协议及版本 HTTP/1.1
GET /05_web_tomcat/login_success.html?username=admin&password=123213 HTTP/1.1
  • 请求头:
    在这里插入图片描述
- 当前页面的上一个页面的路径[当前页面通过哪个页面跳转过来的]:   
- 可以通过此路径跳转回上一个页面, 广告计费,防止盗链
Referer: http://localhost:8080/05_web_tomcat/login.html

GET请求数据不放在请求体


form表单发送post请求特点

1、POST请求有请求体,而GET请求没有请求体。
2、post请求数据在请求体中携带,请求体数据大小没有限制,可以用来上传所有内容[文件、文本]
3、只能使用post请求上传文件
4、post请求报文多了和请求体相关的配置[请求头]
5、地址栏参数不可见,相对安全
6、post效率比get低

  • POST请求要求将form标签的method的属性设置为post
    1
    请求体:浏览器提交给服务器的数据
username=admin&password=1232131

3.3.4 响应报文

  • 响应首行(响应行); 协议/版本 状态码 状态码描述
  • 响应头信息(响应头);
  • 空行;
  • 响应体;
    1
    响应行组成部分:
  • 协议及版本 HTTP/1.1
  • 响应状态码 200
  • 状态描述 OK (缺省)
HTTP/1.1 200 OK
说明:响应协议为HTTP1.1,响应状态码为200,表示请求成功; 
HTTP/1.1 304 
说明:使用本地缓存

响应头:
1
响应体:

需要浏览器解析使用的内容[如果响应的是html页面,最终响应体内容会被浏览器显示到页面中]
在这里插入图片描述

3.3 HTTP1.1

  • HTTP1.0版本中,浏览器请求一个带有图片的网页,会由于下载图片而与服务器之间开启一个新的连接;

  • HTTP1.1版本中,允许浏览器在拿到当前请求对应的全部资源后再断开连接,提高了效率。