web-http协议【理论知识】
1、Http协议介绍
1.1、什么是URL
通常我们在访问一个网站页面时,请求到的内容通称为"资源"。而”资源“这一概念非常宽泛,它可以是一份文档,一张图片,或所有其他你能够想到的格式。
每个资源都由一个URI 来进行标识; 比如: https://img1.baidu.com/it/u=847956157,2750448390&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500 这样的资源,我们会将该其称为URL地址;
百度百科解释:URL简称统―资源定位符,用来唯一地标识万维网中的某一个资源。URL由协议、主机名称、端口以及文件名几部分构成。
深入理解URL的组成部分
1.2、什么是HTML
Html简称Web Page,一个完整的Html页面可能会包含很多个URL的资源。(反之:我们也可以理解一个HTML文件是由多个不同的URL资源拼接而成的。)
1.3、什么是HTTP
HTTP (Hyper Text Transfer Protocol)中文名为超文本传输协议。
是一种能够获取如HTML这样网络资源的通讯协议。
它是在 web上进行数据交换的基础。HTTP的概述参考URL
简单理解:HTTP协议就是将用户请求的HTML页面从一台web服务器传输到客户端浏览器的一种协议。
1.4、URL、HTML、HTTP之间关系
一个完整的HTML页面是由多个不同的 url资源组成的;而HTTP协议主要是用来传输这种HTML页面的;
2、Http工作原理
2.1、图解
2.2、浏览器输入URL后HTTP请求返回的完整过程
3、Http请求Request
3.1、请求-示例图
3.2、请求Method
客户端向服务端发送请求时,会根据不同的资源发送不同的请求方法Method:
GET:用于获取URI对应的资源;(比如看朋友圈)
POST︰用于提交请求,可以更新或者创建资源,是非幂等的;(发布朋友圈)
PUT︰用于向指定的URI传送更新资源,是幂等的;(更新朋友圈)
DELETE:用于向指定的URI删除资源;(比如删朋友圈)
HEAD︰用于检查—般创建对象时用POST,更新对象时用PUT ;
PUT是幂等的,POST是非幂等的;
幂等:对于相同的输入,每次得到的结果都是相等的;
3.3、请求Header
...
Host: sp2.baidu.com Referer: https://www.baidu.com/ sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100" sec-ch-ua-mobile: ?0 sec-ch-ua-platform: "Windows" Sec-Fetch-Dest: image Sec-Fetch-Mode: no-cors Sec-Fetch-Site: same-site
...
3.4、请求Connection
3.4.1、Http请求中的长连接与短连接是什么
http1.0协议使用的是短连接︰建立一次tcp的连接,发起一次 http 的请求,结束,tcp断开。
http1.1协议使用的是长连接∶建立一次tcp 的连接,发起多次http的请求,结束,tcp 断开。
HTTP协议版本参考URL、HTTP1.1与HTTP2.0速度对比
4、Http响应Response
4.1、响应-示例图
4.2、响应Header
...
Access-Control-Allow-Credentials: true Access-Control-Allow-Methods: GET, POST, OPTIONS Access-Control-Allow-Origin: * Cache-Control: no-cache Connection: keep-alive Content-Length: 0 Content-Type: image/gif Date: Wed, 26 Apr 2023 03:19:56 GMT Pragma: no-cache Server: nginx/1.8.0
...
4.3、响应Status
状态码 说明
1xx 信息,服务器收到请求,需要请求者继续执行操作
2xx 成功,操作被成功接收并处理
3xx 重定向,需要进一步的操作以完成请求
4xx 客户端错误,请求包含语法错误或无法完成请求
5xx 服务器错误,服务器在处理请求的过程中发生了错误
4.4、响应Code
状态码 说明 200 表示成功客户端成功接收到了服务端返回的数据,这是最常见的状态码 206 客户端发完请求后,服务端只是返回了部分数据,就会出现该状态码,例如当下载一个很大的文件时,在没有下载完成前就会出现该状态码 301 永久重定向(redirect) 302 临时重定向(redirect) 400 客户端请求语法错误,服务端无法理解 401 服务端开启了用户认证,而客户端没有提供正确的验证信息 403 服务端不允许客户端访问,或者没有找到默认返回页面 404 客户端请求的资源不存在 413 客户端向服务端上传一个比较大的文件,并且文件大小超过了服务端的限制 500 服务端出现了内部错误,需要进行人为排查故障 502 服务器充当代理角色时,后端被代理的服务器不可用或者没有正常回应 503 服务当前不可用,由于超载或系统维护,服务器暂时的无法处理客户端请求 504 服务器充当代理角色时,后端的服务端没有按时返回数据,超时了