2022.4.16 HTTP
HTTP
什么是协议? 什么是 HTTP 协议?
协议是指双方或多方相互约定好大家都需要遵守的规则,叫协议。 所谓 HTTP 协议,就是指客户端和服务器之间通信时发送的数据需要遵守的规则,叫 HTTP 协议。HTTP 协议中的数据又叫报文。HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。
客户端给服务器发送数据叫请求,请求又分为 GET 请求,和 POST 请求两种
服务器给客户端回传数据叫响应。
Https:(s表示安全的)
两个时代
-
HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连
-
HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源。
GET 请求
-
-
请求的方式(GET)
-
请求的资源路径([+?+请求参数] )
-
请求的协议的版本号 (HTTP/1.1 )
-
get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
-
请求头
-
key : value 组成,不同的键值对,表示不同的含义。
-
a.html
1 <!DOCTYPE html> 2 <html lang="zh_CN"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <form action="http://localhost:8080/06_servlet/hello3" method="post"> 9 <input type="hidden" name="action" value="login" /> 10 <input type="hidden" name="username" value="root" /> 11 <input type="submit"> 12 </form> 13 </body> 14 </html>
访问http://localhost:8080/06_servlet/a.html
POST 请求
-
1、请求行
-
请求的方式 (POST)
-
请求的资源路径([+?+请求参数] )
-
请求的协议的版本号 (HTTP/1.1 )
-
post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。
-
-
2、请求头
-
key : value 不同的请求头,有不同的含义
空行
-
-
3、请求体 =>>> 就是发送给服务器的数据
a.html
1 <!DOCTYPE html> 2 <html lang="zh_CN"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <form action="http://localhost:8080/06_servlet/hello3" method="post"> 9 <input type="hidden" name="action" value="login" /> 10 <input type="hidden" name="username" value="root" /> 11 <input type="submit"> 12 </form> 13 </body> 14 </html>
访问http://localhost:8080/06_servlet/a.html 点击提交按钮
常用请求头的说明
-
Accept: 表示客户端可以接收的数据类型
-
Accpet-Languege: 表示客户端可以接收的语言类型
-
User-Agent: 表示客户端浏览器的信息
-
Host: 表示请求时的服务器 ip 和端口号 iv.
哪些是 GET 请求,哪些是 POST 请求
-
GET 请求有哪些:
-
form 标签 method=get
-
a 标签
-
link 标签引入 css
-
Script 标签引入 js 文件
-
img 标签引入图片
-
iframe 引入 html 页面
-
在浏览器地址栏中输入地址后敲回车
-
-
POST 请求有哪些:
-
form 标签 method=post
-
响应的HTTP 协议格式
-
1、响应行
-
响应的协议和版本号 HTTP/1.1
-
响应状态码 200
-
响应状态描述符 ok
-
-
2、响应头
-
key : value 不同的响应头有其不同含义
空行
-
-
3、响应体 ---->>> 就是回传给客户端的数据
常用的响应码说明
200:请求响应成功 200
3xx:302 表示请求重定向
-
重定向:你重新到我给你新位置去
4xx:404 表示请求服务器已经收到了,但是你要的数据不存在(请求地址错误)
-
资源不存在
5xx:500表示服务器已经收到请求,但是服务器内部错误(代码错误) 502:网关错误
响应头:
1 cache-control :private 缓存控制 2 connection :keep-Alive 连接 3 content-Encoding:gzip 编码 4 content-Type : text/htm1类型
响应体
1 Accept:告诉浏览器,它所支持的数据类型 2 Accept-Encoding:支持哪种编码格式GBK UTF-8GB2312 ISo8859-1 3 Accept-Language:告诉浏览器,它的语言环境 4 cache-contro1:缓存控制 5 connection:告诉浏览器,请求完成是断开还是保持连接 6 HOST:主机.... 7 Refresh:告诉客户端,多久刷新一次; 8 Location:让网页重新定位;
MIME 类型说明
MIME 是 HTTP 协议中数据类型。
MIME 的英文全称是"Multipurpose Internet Mail Extensions" 多功能 Internet 邮件扩充服务。MIME 类型的格式是“大类型/小类型”,并与某一种文件的扩展名相对应。
文件 | 后缀 | MIME 类型 |
---|---|---|
超文本标记语言文本 | .html , .htm | text/html |
普通文本 | .txt | text/plain |
RTF 文本 | .rtf | application/rtf |
GIF 图形 | .gif | image/gif |
JPEG 图形 | .jpeg,.jpg | image/jpeg |
au 声音文件 | .au | audio/basic |
MIDI 音乐文件 | mid,.midi | audio/midi,audio/x-midi |
RealAudio 音乐文件 | .ra, .ram | audio/x-pn-realaudio |
MPEG 文件 | .mpg,.mpeg | video/mpeg |
常见面试题:
当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)