HTTP协议
HTTP协议
超文本传输协议(HTTP)互联网广泛应用的一种网络协议,是工作在TCP/IP协议基础上的,所有WWW文件都遵守这个标准
http1.0短链接 http1.1长连接
页面请求的问题:第一次请求url地址指向的test.html,后续解析中发现test.html有img标签,会继续向服务器发请求,把所有资源都获取
请求头介绍
GET /hiapp/service/modules/dev/designer/ribbon/images/buttons/start/pic/t13.png HTTP/1.1
Host: 192.168.160.217:38091
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
Accept: image/avif,image/webp,*/*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://192.168.160.217:38091/dist/index.html
Cookie: SESSION=089c222a-dc86-44a7-9981-7433fb472176; route=6f3a0c26e947faa0930ab94a685171bb; userid=6666; Admin-Token=6666; sidebarStatus=0
- GET---请求方式
- /hiapp/service/modules/dev/designer/ribbon/images/buttons/start/pic/t13.png---请求资源,或者URI
- HTTP/1.1---协议
- Host: 192.168.160.217:38091---指定请求的服务器的域名和端口号
- User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0---发送请求的用户信息
- Accept: image/avif,image/webp,*/* ---本次请求可以接收的 MIME 数据类型
- Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 --- 支持的语言
- Accept-Encoding: gzip, deflate --- 支持的传输数据压缩格式
- Referer: http://192.168.160.217:38091/dist/index.html --- 先前网页的地址,当前请求网页紧随其后,即来路
- Connection: keep-alive --- 表示是否需要持久连接。(HTTP 1.1 默认进行持久连接)
- Cookie: SESSION=089c222a-dc86-44a7-9981-7433fb472176; route=6f3a0c26e947faa0930ab94a685171bb; userid=6666; Admin-Token=6666; sidebarStatus=0 --- HTTP 请求发送时,会把保存在该请求域名下的所有 cookie 值一起发送给 web 服务器。
响应头介绍
HTTP/1.1 200 OK
Server: nginx/1.17.7
Date: Mon, 18 Apr 2022 10:43:22 GMT
Content-Type: image/png;charset=UTF-8
Content-Length: 18113
Connection: keep-alive
vary: Origin
Accept-Ranges: bytes
ETag: W/"18113-1631698572000"
Last-Modified: Wed, 15 Sep 2021 09:36:12 GMT
文件二进制码
- HTTP/1.1---协议
- 200 --- 响应状态码
- OK --- 响应备注
- Server: nginx/1.17.7---web 服务器软件名称
- Date: Mon, 18 Apr 2022 10:43:22 GMT --- 原始服务器消息发出的时间
- Content-Type: image/png;charset=UTF-8 --- 返回内容的 MIME 类型;返回内容的编码
- Content-Length --- 响应体的长度
- Connection: keep-alive --- 表示是否需要持久连接。(HTTP 1.1 默认进行持久连接)
- vary: Origin --- 告诉下游代理是使用缓存响应还是从原始服务器请求
- Accept-Ranges: bytes --- 可以请求网页实体的一个或者多个子范围字段,就是支持断点续传
- ETag: W/"18113-1631698572000" --- 请求变量的实体标签的当前值
- Last-Modified: Wed, 15 Sep 2021 09:36:12 GMT --- 请求资源的最后修改时间
状态码
常见状态码
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
302 - 资源(网页等)被临时转移到其他URL
304 - 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误(服务器代码中有异常报错,没有正确执行服务)
HTTP状态码分类 | |
---|---|
分类 | *分类描述* |
1** | *信息,服务器收到请求,需要请求者继续执行操作* |
2** | *成功,操作被成功接收并处理* |
3** | *重定向,需要进一步的操作以完成请求* |
4** | *客户端错误,请求包含语法错误或无法完成请求* |
5** | *服务器错误,服务器在处理请求的过程中发生了错误* |
请求包
GET
- 请求行中带参数
POST
- 多了请求体,把参数内容放在请求体
- 请求头中多了请求体信息(x-www-form-urlencoded 指 表单数据是URL编码)
请求方法的选择
- GET请求有哪些
- form标签 method=get【指定】
- a标签
- link标签
- script标签
- img标签
- iframe标签
- 浏览器地址栏输入地址后回车
- POST请求有哪些
- form标签 method=post【指定】
选择的依据:get请求传送的数据量不能超过2k,post一般默认不受限制
数据大小:POST>GET
传播层面:GET>POST
安全层面:POST>GET
MIME类型
常见的类型:
常见的MIME类型(通用型):
超文本标记语言文本 .html text/html
xml文档 .xml text/xml
XHTML文档 .xhtml application/xhtml+xml
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
PDF文档 .pdf application/pdf
Microsoft Word文件 .word application/msword
PNG图像 .png image/png
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
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar
任意的二进制数据 application/octet-stream
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?