【JavaWeb】知识总结Ⅷ(HTTP协议, GET请求包, POST请求包, 响应包的分析)

简介: 1. http 是 TCP/IP 协议的一个应用层协议,http 也是我们 web 开发的基础.http协议特点:2.基于请求响应模型的:一次请求对应一次响应3.http协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的· 缺点:多次请求之间不能共享数据 (java中使用会话技术解决session、cookie)· 优点:速度快

目录


🌒一. HTTP 协议介绍


🌒二. HTTP协议的特点


🌕三. GET请求包分析


🌕四. POST请求包分析


🌕五. 使用GET 请求,  POST 请求的场景有哪些


🌔六. HTTP 响应包分析


🌓七. 状态码


🌒八. MIME类型


一. HTTP 协议介绍


几种常见的请求 :




超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用广泛的一种网络协议。

是工作在 tcp/ip 协议基础上的,所有的 WWW 文件都遵守这个标准。

二. HTTP协议的特点

1. http 是 TCP/IP 协议的一个应用层协议,http 也是我们 web 开发的基础.

http协议特点:


2.基于请求响应模型的:一次请求对应一次响应


3.http协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的


· 缺点:多次请求之间不能共享数据    (java中使用会话技术解决session、cookie)


· 优点:速度快



4.Http是以明文方式发送数据

(数据不是加密的,很不安全--发展了现在安全的https协议)


5.用于从www服务器传输超文本到本地浏览器的传输协议


6. Http 协议是以TCP/IP为基础的应用层协议,用于定义浏览器与Web服务器之间交换数据的过程,大家平常通过浏览器访问Internate上的某一个网页的过程就是借助HTTP协议完成的


7.现在广泛使用的版本HTTP1.1

(1)跟Http1.0最大的区别是支持持久连接,在一个TCP/IP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。在1.0中如果要访问某个包含很多图片的网页时,每张图片都会建立一个连接,当图片下载完毕后,就会关闭连接(当某个网站图片很多时,这样就会造成下载速度非常慢),而在 Http1.1支持可持续性连接;

(2) Http1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的相应内容,这样也明显地减少了整个下载过程所需要的时间

8.状态码:


200 - 请求成功


301 - 资源(网页等)被永久转移到其它URL


404 - 请求的资源(网页等)不存在


500 - 内部服务器错误


.....



9.HTTP协议是一个无状态协议,也就是说客户端的一次请求接收结束后就会断开与服务器的连接,当发出第二次请求后重新建立访问连接,所以对于用户的多次请求我们就需要一种机制进行跟踪;

①Cookie跟踪

服务器端向客户端保存一些信息(只能是文本文件,长度也是有限制的最长为4K,客户端也可以阻止服务器的写入),因此 Cookie跟踪不太稳定,基于Cookie的开发一般是做些锦上添花的东西可有可无,对于核心的业务逻辑我们不能用Cookie进行开发;



②服务器在向客户端写数据的时候会将客户端标识一起写入,便于下次该客户访问是从客户端获取重要信息;



③服务器只能取出它自己在客户端写入的信息;


④Cookie分类

无生命周期的Cookie,它存活去E浏览器的缓存中;


有生命周期的Cookie,它具有有效时间,它存在于客户端磁盘中,有效期后自动消失。


如果一个请求包里含有服务器的其他资源, 那么就继续发送请求, 直到所需资源都请求到了为止


三. GET请求包分析

🌸请求行

🌸请求头

举例解释 :


✨✨更详细的解释 :



四. POST请求包分析

🌈🌈举例说明 :





五. 使用GET 请求,  POST 请求的场景有哪些

💡💡


● GET 请求有哪些

1. form 标签 method=get [ 指定,由程序员指定的 ]

2. a 标签[ 以 get 方式来获取资源 ]

3. link 标签引入 css [ 以 get 方式来获取资源 ]

4. Script 标签引入 js 文件 [ 以 get 方式来获取资源 ]

5. img 标签引入图片 [ 以 get 请求来获取图片 ]

6. iframe 引入 html 页面 [ 不演示 ]

7. 在浏览器地址栏中输入地址后敲回车 [ 用的比较多 ]

💡💡


● POST 请求有哪些

 form 标签 method=post

🌈🌈HTTP 请求中怎样选择 Get 和 Post 方式🌈🌈


在大部分情况下,我们不需要考虑这个问题,因为业务本身就会自动区别, 比如你要显示图片,引入 css/js 这个天然的就是 get 请求,比如你登录,发帖,上传文 件, 你就会使用 post  (用心体会)

传输的数据大小区别

1) get 传送的数据量较小。不能大于 2KB( 不同浏览器不一样 ) 。

2) post 传送的数据量较大。一般默认不受限制。

🌸🌸🌸什么情况下使用 post 请求


1) post 请求是会在浏览器上隐藏參数部分的,在安全要求的部分都会使用到 POST 请求。 如用户登录。数据增上改等等。都会把參数隐藏起来,这样就不会通过你的请求暴露你的參数格式。

       比方:del?id=1 ,别人就能够用 del?id=3 来删除你其它数据。

2) 在向 server 传递数据较大的时候。使用 POST , get 是有限制的 , 比如发帖 , 上传文件

🌸🌸🌸什么情况下使用 get 方式呢


1) 在前台页面展示,比如分页内容等,可以保留传递参数 , 可用来非常好的分享和传播 ,POST 中链接地址是不变化的, 不利于分享和传播

       例如 :



建议:

1) get 方式的安全性较 Post 方式要差些。包括机密信息的话。建议用 Post 数据提交方式;


2) 在做数据查询时。建议用 Get 方式;而在做数据加入、改动或删除时,建议用 Post 方式

六. HTTP 响应包分析

● HTTP 响应包括 3 个部分

       1. 响应行

       2. 响应头

       3. 响应体

● HTTP 响应包分析图



七. 状态码

状态行

格式: HTTP版本号 状态码 原因叙述<CRLF>

举例:HTTP/1.1 200 OK

状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:



🌸✨⭐ 演示 302 状态码使用 :



状态码大全:状态 | Status - HTTP 中文开发手册 - 开发者手册 - 腾讯云开发者社区-腾讯云


八. MIME类型

MIME 介绍

1.MIME 是 HTTP 协议中数据类型。 MIME 的英文全称是 "Multipurpose Internet Mail Extensions" 多功能 Internet 邮件扩充服务。 MIME 类型的格式是 " 大类型 / 小类型 " , 并与某一种文件的扩展名相对应

2. 在响应包的 Content-Type 就有指定 , 如图


常见的 MIME 类型




相关文章
|
8月前
|
Android开发 Kotlin
|
8月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
741 2
|
8月前
|
缓存 网络协议 API
HTTP/1.1相较于HTTP/1.0所实现的性能提升点分析。
通过以上的技术改进,HTTP/1.1显著提升了Web的性能和可靠性,同时减少了带宽的使用和服务器的负载。这些特性直到今天仍然是现代Web通信的基础。尽管如今HTTP/2和HTTP/3逐渐取代了旧的协议,以上所述的HTTP/1.1性能提升对所有后续版本仍然有着深远影响。
348 0
|
11月前
|
网络协议 API 开发者
分析http.client与requests在Python中的性能差异并优化。
合理地选择 `http.client`和 `requests`库以及在此基础上优化代码,可以帮助你的Python网络编程更加顺利,无论是在性能还是在易用性上。我们通常推荐使用 `requests`库,因为它的易用性。对于需要大量详细控制的任务,或者对性能有严格要求的情况,可以考虑使用 `http.client`库。同时,不断优化并管理员连接、设定合理超时和重试都是提高网络访问效率和稳定性的好方式。
251 19
|
12月前
|
XML JSON 网络协议
利用HTTP POST协议实现简单的RPC协议:WireShark抓包分析
通过这种方式,我们可以使用HTTP POST实现简单的RPC协议,并使用WireShark进行抓包分析。这不仅可以帮助我们理解RPC协议的工作原理,也可以帮助我们调试和优化我们的代码。
627 30
|
11月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
1013 20
|
11月前
|
数据采集 监控 安全
HTTP代理和IP代理的不同点及代理IP能带来的好处分析
总的来说,无论是HTTP代理还是IP代理,选择哪一种主要还是要看你的需求和使用场景,同时也要为可能的风险做好准备。
252 9
|
12月前
|
JSON 数据格式
利用HTTP POST协议实现简单的RPC协议,并使用WireShark进行抓包分析
通过这种方式,我们可以利用HTTP POST实现简单的RPC协议,并使用WireShark进行抓包分析。这种方式简单易懂,实用性强,可以应用于各种网络编程场景。
499 16
|
API 开发者
了解 HTTP 的PUT 与 POST方法的综合指南
HTTP PUT 和 POST 方法是构建 Web 应用与 API 的核心工具,用于资源的创建与更新。PUT 方法通过指定 URL 更新或创建完整资源,具有幂等性;而 POST 方法更灵活,主要用于创建新资源,但不具备幂等性。本文详细对比了两者在请求体、URL 使用、资源处理等方面的区别,并提供了实际应用示例,帮助开发者根据场景选择合适的方法以优化 API 设计。
|
缓存 安全 API
为什么 HTTP GET 方法不使用请求体?
本指南深入探讨了为什么HTTP GET方法通常不使用请求体,解释了GET方法的主要用途及其设计原则。GET请求旨在通过URL安全、幂等地检索数据,避免因请求体带来的复杂性和潜在问题。尽管HTTP/1.1规范允许GET请求包含请求体,但这并不常见且可能引发副作用。掌握这些原则有助于开发者在API开发中更高效地使用GET请求。

热门文章

最新文章