目录
📌HTTP协议
超文本传输协议
请求 Request
响应 Response
🎨请求方法
GET请求
POST请求
📌HTTP协议
超文本传输协议
HTTP协议是浏览器与服务器通讯的应用层协议,规定了浏览器与服务器之间的交互规则以及交互数据的格式信息等。
用途 : 网页获取,数据的传输
特点
应用层协议,使用tcp进行数据传输;
有丰富的请求类型;
可以传输的数据类型众多.
访问页面流程
原图
亿图图示https://www.edrawmax.cn/online/share.html?code=12a56234049e11ef94adf9ef8352e1d6
请求 Request
HTTP请求 Request
浏览器给服务端发送的内容称为请求Request,一个请求包含三部分:请求行,请求头,请求体
请求行 : 具体的请求类别和请求内容
GET / HTTP/1.1
请求类别 抽象路径 协议版本
请求类别:
GET | 获取服务器资源 |
POST | 新增服务器资源 |
PUT | 更新服务器资源 |
DELETE | 删除服务器资源 |
关于抽象路径
默认路径
请求URL地址为:http://localhost:8080/
请求行为:GET /HTTP/1.1
其他路径(非默认路径)
请求URL地址为:http://localhost:8080/v1/users/login
请求行为:GET /v1/users/login HTTP/1.1
请求头:对请求的进一步解释和描述
请求头是浏览器可以给服务端发送的一些附加信息,有的用来说明浏览器自身内容,有的用来告知服务端交互细节,有的告知服务端消息正文详情等。
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
请求体: 请求参数或者提交内容
请求体通常是用户上传的信息,比如:在页面输入的注册信息,上传的附件等内容。
响应 Response
浏览器给服务端发送的内容称为请求Request,一个请求包含三部分:请求行,请求头,请求体
响应头
响应头与请求中的消息头格式一致,表示的是服务端发送给客户端的附加信息。
http://localhost:8080/v1/users/login?username=xxx&password=yyy
协议(Protocol) | 指定访问资源的协议类型(HTTP,HTTPS 等) |
主机名(Hostname) | 指定访问服务器的主机名或者域名 |
端口号(port) | 指定服务器器的端口号,不同协议和应用使用不同的端口号 |
路径(path) | 指定访问的资源路径 或文件或文件夹的路径 |
查询参数 | 用于传递一些额外的信息给服务器 |
注意 :查询参数和路径Path之间使用 ?分隔,多个查询参数之间使用 & 分隔。
🎨请求方法
GET请求
GET请求是HTTP协议中最常见的请求方式之一,它用于从服务器获取数据。
GET请求将查询参数附加在URL之后,通过“?”符号进行分隔。
查询参数
GET请求的参数通常以键值对的形式附加在URL之后
http://example.com/users?name=John&age=25
以下URL中,“?name=John&age=25”是两个查询参数,分别表示名字和年龄
注意事项
GET请求的参数是可见的,因此在URL中传递敏感信息时需谨慎。
GET请求的长度有限制因为URL的长度有限制,因此当传递大量数据时,应考虑使用POST或其他方式。
POST请求
POST请求是另一种常见的HTTP请求方式,它用于向服务器提交数据。与GET请求不同,POST请求将数据放在请求体(Request Body)中,而不是URL中。
POST /users HTTP/1.1
Host: example.com
Content-Type: application/json
Request Body: {"username": "john", "password": "secret"}
POST请求的注意事项
POST请求的数据是私密的,不会显示在URL中,因此更适合传递敏感信息。
POST请求的长度没有限制,可以提交大量的数据。
发送POST请求
经常在 form 表单中发送。
<form action="请求地址" method="post"><input type="text" name="username"><input type="text" name="password"><input type="submit" name="登录">
</form>
传递数据方式
客户端向服务端传递数据的方式分为GET请求和POST请求两种方式。
GET请求 | 在查询参数中传递 |
POST请求 | 在请求体中传递 |