Http协议简介

简介: Http协议简介

一、简介

1、Http: HyperText Transfer Protocol 超文本传输协议

协议:双方或多方遵守的 约定

Http协议是 客户端和服务端之间通讯时发送数据需要遵守的协议

http传输的数据叫做报文


2、http特点:

(1)基于TCP协议,面向连接,安全

(2)基于请求-响应模型。

一次请求对应一次响应。

(3)http协议是无状态的。

对于事务处理没有记忆能力。每次请求之间是独立的,不同请求之间不能共享数据。java中通过会话技术(cookie、session)来解决这个问题


二、请求方式

http分为GET和POST两种请求方式

GET和POST两种请求的区别:

(1)GET请求参数在请求行中,POST的请求参数在请求体中

(2)GET请求参数有条数限制,POST的请求参数没有限制


1、GET:包括请求行和请求头

(1)请求行:

a、请求方式 GET

b、请求路径 /api/projectResource/queryAllMenuForUser/7

c、请求协议的版本 HTTP/1.1

(2)请求头:

Accept: 告诉服务器,浏览器可以接收的资源类型

Accept-Encoding: 浏览器可以支持的压缩类型

Accept-Language: 接收的语言

Connection: 连接状态,包括keep-alive,closed

Host: ip和端口号

Referer: 发送请求时浏览器的地址

User-Agent: 浏览器信息


例:


// 请求行
GET /api/projectResource/queryAllMenuForUser/7 HTTP/1.1
// 请求头
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Accept-Version: 1.0.0
Auth-Type: project
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRoX3R5cGUiOiJwcm9qZWN0Iiwicm9sZSI6IumhueebrueuoeeQhuWRmCzns7vnu5_nrqHnkIblkZgiLCJjb2RlIjoiMjAwIiwidXNlcl9uYW1lIjoienB4IiwiYXV0aG9yaXRpZXMiOlsiUk9MRV_ns7vnu5_nrqHnkIblkZgiLCJST0xFX-mhueebrueuoeeQhuWRmCJdLCJjbGllbnRfaWQiOiI2MDBseV9hcGlfY2xpZW50IiwiYXVkIjpbIjYwMGx5X2FwaV9yZXNvdXJjZSJdLCJ1c2VyX2lkIjo3LCJzaWduX2NvZGUiOiJ6a2duIiwic2NvcGUiOlsicmVhZCIsIndyaXRlIl0sInVzZXJfcmVhbG5hbWUiOiLlvKDpuY_ovakiLCJsb2dvIjoiIiwiZXhwIjoxNjUyMTU1ODYzLCJqdGkiOiIzZjFiMjYyMC0zNDFjLTQxMzEtOTA0NS01MTc2ZThlNzc4NGYifQ.A35WDYEZjuO0-wN73hN0qac2wiEGCecgjKVl5ldihs2iGrq6gHlXQSoj2sfP-fAn9caeSm_KLNbmje3d5Zh1QkXzbTVOw6yw9FS4AvmavTk6VD9aXcekW-zqFE2LFqJdFdQEX-ds9e44ItC3Z7vVGeBvzuhHi0oC89T0jliGDVbr7kEc2rGfNjSLbifhyQZjVv9bjFQvOny3dKaHBfCx1fSniZDNWx11nrzaWRq6dtdKs_ErFQ368Z8tLg3jTzjX9JCF0ZSuSHrPAOz657MEnMDxcu6qATPysLZjbjo0a_OCzRmjisiT28v80OL9cvQB89IgUAvzkw1A3bPugPk_gA
Connection: keep-alive
Host: 124.70.89.33
Referer: http://124.70.89.33/600ly-feoms/device-manage/areaDevice/manage
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36

2、POST:包括请求行、请求头、请求空行、请求体

(1)请求行:

a、请求方式 POST

b、请求路径 /api/projectUserRole/setProjectAdmin

c、请求协议的版本 HTTP/1.1

(2)请求头:

Accept: 告诉服务器,可以接收的类型

Accept-Encoding: 接收的编码格式

Accept-Language: 接收的语言

Connection: 连接状态,包括keep-alive,closed

Content-Length: 请求数据的长度

Content-Type: 请求数据的类型

Host: ip和端口号

Referer: 发送请求时浏览器的地址

User-Agent: 浏览器信息

(3)请求空行

(4)请求体:signCode=600ly&userId=22


例:

POST /api/projectUserRole/setProjectAdmin HTTP/1.1
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: keep-alive
Content-Length: 24
Content-Type: application/x-www-form-urlencoded
Host: 129.20.86.53
Origin: http://129.20.86.53
Referer: http://129.20.86.53/permission/user
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36
signCode=600ly&userId=22

三、HTTP协议的响应格式

(1)响应行

a、响应协议

b、响应状态码

c、响应标识

(2)响应头

Server: 服务器

Date: 格林尼治标准时间

Content-Type: 响应数据类型

Transfer-Encoding: chunked

Connection: 连接状态

Content-Encoding: 数据编码格式

(3)响应空行

(4)响应体

HTTP/1.1 200 OK
Server: nginx
Date: Mon, 09 May 2022 09:43:38 GMT
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Encoding: gzip
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Vary: origin,access-control-request-method,access-control-request-headers,accept-encoding
{
  "code" : "200",
  "message" : "success",
  "data" : {
    "total" : 2,
    "totalPage" : 1,
    "rows" : [ {
      "id" : 200300,
      "devGroupId" : "90526686-4182-fdc4-9264-2df6acc3185a",
      "authorityName" : "只读",
      "sortValue" : 0,
      "status" : "1"
    }, {
      "id" : 200301,
      "devGroupId" : "726d7493-d87a-400d-3021-0f4eb00675a8",
      "authorityName" : "只读",
      "sortValue" : 0,
      "status" : "1"
    }]
  }
}

响应码:

2xx:请求成功

3xx:请求重定向

4xx:客户端错误

404:服务器已经接收到请求,但是请求地址不存在

5xx:服务器已经接收到请求,服务器代码出现错误


23.pngimage.png

MIME:Multipurpose Internet Mail Extensions 多功能因特网邮件扩充服务。格式为 大类型/小类型

25.png



相关文章
|
1天前
|
缓存 网络协议 前端开发
Web 性能优化|了解 HTTP 协议后才能理解的预加载
本文旨在探讨和分享多种预加载技术及其在提升网站性能、优化用户体验方面的应用。
Web 性能优化|了解 HTTP 协议后才能理解的预加载
|
7天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验
52 28
|
5天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验。
96 25
|
8天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验。
133 18
|
28天前
|
域名解析 缓存 网络协议
Web基础与HTTP协议
通过掌握这些基础知识和技术,开发者可以更加高效地构建和优化Web应用,提供更好的用户体验和系统性能。
72 15
|
23天前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
26天前
|
缓存 网络协议 算法
从零开始掌握HTTP协议
本文介绍HTTP协议的演变,从HTTP1.0到HTTP2.0。HTTP1.0为无状态连接,每次请求独立;HTTP1.1引入持久连接、管道化请求和更多状态码;HTTP2.0采用二进制分帧、多路复用、头部压缩及服务器主动推送,大幅提升性能与用户体验。了解这些区别有助于开发者优化应用和服务。
|
26天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
95 1
|
2月前
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
|
2月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
85 11