目录
🌒一. 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 类型