【JavaWeb】HTTP协议请求响应全解

简介: 【JavaWeb】HTTP协议请求响应全解

文章目录


一、HTTP简介

二、请求报文

三、请求方式

四、媒体类型

五、响应报文


一、HTTP简介


HTTP:Hyper Text Transfer Protocol 超文本传输协议。HTTP最大的作用就是确定了请求和响应数据的格式。浏览器发送给服务器的数据:请求报文;服务器返回给浏览器的数据:响应报文。


二、请求报文


1、请求报文的三个部分


f4b0c62248d041e6a17902411fafb540.png


2、请求行

作用:展示当前请求的最基本信息。


POST /dynamic/target.jsp HTTP/1.1


请求方式

访问地址

HTTP协议的版本

3、请求消息头

作用:通过具体的参数对本次请求进行详细的说明。

格式:键值对,键和值之间使用冒号隔开。

一些比较重要的请求消息头:


36d0d25b35fb4234af977fc4eab544c5.png


4、请求体

作用:作为请求的主体,发送数据给服务器。具体来说其实就是POST请求方式下的请求参数。

格式:

[1]form data

含义:当前请求体是一个表单提交的请求参数。


d1207743e3144632a6008499dfec3ba6.png


查看源码后,发现格式如下:


username=tom&password=123456


每一组请求参数是一个键值对

键和值中间是等号

键值对之间是&号

[2]Request Payload

含义:整个请求体以某种特定格式来组织数据,例如JSON格式。


123ebaa7420945988350bef200bd2973.png


三、请求方式


1、HTTP协议已定义的请求方式

HTTP1.1中共定义了八种请求方式:


  • GET:从服务器端获取数据
  • POST:将数据保存到服务器端
  • PUT:命令服务器对数据执行更新
  • DELETE:命令服务器删除数据
  • HEAD
  • CONNECT
  • OPTIONS
  • TRACE


2、GET请求

特征1:没有请求体。

特征2:请求参数附着在URL地址后面。

特征3:请求参数在浏览器地址栏能够直接被看到,存在安全隐患。

特征4:在URL地址后面携带请求参数,数据容量非常有限。如果数据量大,那么超出容量的数据会丢失。

特征5:从报文角度分析,请求参数是在请求行中携带的,因为访问地址在请求行。


3、POST请求

特征1:有请求体。

特征2:请求参数放在请求体中。

特征3:请求体发送数据的空间没有限制。

特征4:可以发送各种不同类型的数据。

特征5:从报文角度分析,请求参数是在请求体中携带的。

特征6:由于请求参数是放在请求体中,所以浏览器地址栏看不到。


四、媒体类型


1、HTTP协议中的MIME类型

Multipurpose Internet Mail Extensions


2、用途

为了让用户通过浏览器和服务器端交互的过程中有更好、更丰富的体验,HTTP协议需要支持丰富的数据类型。


3、MIME类型定义参考

我们可以通过查看Tomcat解压目录下conf/web.xml配置文件,了解HTTP协议中定义的MIME类型。


<mime-mapping>
  <extension>mp4</extension>
  <mime-type>video/mp4</mime-type>
</mime-mapping>
<mime-mapping>
  <extension>doc</extension>
  <mime-type>application/msword</mime-type>
</mime-mapping>
<mime-mapping>
  <extension>json</extension>
  <mime-type>application/json</mime-type>
</mime-mapping>
<mime-mapping>
  <extension>html</extension>
  <mime-type>text/html</mime-type>
</mime-mapping>


从上面的例子中可以看出:MIME的基本格式是


大类/具体类型


MIME类型在HTTP报文中对应的是内容类型:Content-type。


五、响应报文


2c667bec2b5844cea46e426098a4231f.png


1、响应状态行


HTTP/1.1 200 OK


HTTP协议版本

响应状态码

响应状态的说明文字

2、响应消息头


响应体的说明书

服务器端对浏览器端设置数据,例如:服务器端返回Cookie信息


5c2c5cefe4bd4da3a36d43ebabcb6e58.png


3、响应体

服务器返回的数据主体,有可能是各种数据类型。


  • HTML页面
  • 图片
  • 视频
  • 以下载形式返回的文件
  • CSS文件
  • JavaScript文件

4、响应状态码

作用:以编码的形式告诉浏览器当前请求处理的结果。


436fa3140920442faf6a25b3646437a1.png


404产生的具体原因:

①访问地址写错了,确实是没有这个资源。

②访问了WEB-INF目录下的资源。

③Web应用启动的时候,控制台已经抛出异常,导致整个Web应用不可用。

④服务器端缓存。



相关文章
|
4天前
|
缓存 应用服务中间件 Apache
HTTP 范围Range请求
HTTP范围请求是一种强大的技术,允许客户端请求资源的部分内容,提高了传输效率和用户体验。通过正确配置服务器和实现范围请求,可以在视频流、断点续传下载等场景中发挥重要作用。希望本文提供的详细介绍和示例代码能帮助您更好地理解和应用这一技术。
41 19
|
30天前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
84 25
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
|
12天前
|
JSON JavaScript 前端开发
什么是HTTP POST请求?初学者指南与示范
HTTP POST请求是一种常用的HTTP方法,主要用于向服务器发送数据。通过合理设置请求头和请求主体,可以实现数据的可靠传输。无论是在客户端使用JavaScript,还是在服务器端使用Node.js,理解和掌握POST请求的工作原理和应用场景,对于Web开发至关重要。
132 18
|
15天前
|
域名解析 缓存 网络协议
Web基础与HTTP协议
通过掌握这些基础知识和技术,开发者可以更加高效地构建和优化Web应用,提供更好的用户体验和系统性能。
64 15
|
10天前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
11天前
|
JSON 数据格式
.net HTTP请求类封装
`HttpRequestHelper` 是一个用于简化 HTTP 请求的辅助类,支持发送 GET 和 POST 请求。它使用 `HttpClient` 发起请求,并通过 `Newtonsoft.Json` 处理 JSON 数据。示例展示了如何使用该类发送请求并处理响应。注意事项包括:简单的错误处理、需安装 `Newtonsoft.Json` 依赖,以及建议重用 `HttpClient` 实例以优化性能。
54 2
|
13天前
|
缓存 网络协议 算法
从零开始掌握HTTP协议
本文介绍HTTP协议的演变,从HTTP1.0到HTTP2.0。HTTP1.0为无状态连接,每次请求独立;HTTP1.1引入持久连接、管道化请求和更多状态码;HTTP2.0采用二进制分帧、多路复用、头部压缩及服务器主动推送,大幅提升性能与用户体验。了解这些区别有助于开发者优化应用和服务。
|
13天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
60 1
|
29天前
|
Web App开发 大数据 应用服务中间件
什么是 HTTP Range请求(范围请求)
HTTP Range 请求是一种非常有用的 HTTP 功能,允许客户端请求资源的特定部分,从而提高传输效率和用户体验。通过合理使用 Range 请求,可以实现断点续传、视频流播放和按需加载等功能。了解并掌握 HTTP Range 请求的工作原理和应用场景,对开发高效的网络应用至关重要。
65 15
|
2月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
74 11