首页 > 其他分享 >HTTP协议

HTTP协议

时间:2022-10-24 20:25:01浏览次数:42  
标签:协议 HTTP 请求 url #### 服务端 客户端

1.名称

HTTP 协议 --> 超文本传输协议, 英文 --> Hypertext Transfer Protocol

2.版本

HTTP 0.9、1.0、1.1、2,当前最广泛使用的是 HTTP/1.1 版本。

3.特点

HTTP 协议最大的特点 --> 通讯双方 分为 客户端 和 服务端 。

4.交互方式

客户端 --> 发送 http请求(request)--> 服务端
<-- 发送 http响应(response)<--

特别注意:HTTP协议中,服务端不能主动先发送信息给 客户端。

在1.1 以前的版本, 服务端 返回响应给客户端后,连接就会 断开 ,
下一次双方要进行信息交流,必须重复上面的过程,重新建立连接,客户端发送请求,服务返回响应。

到了 1.1 版本, 建立连接后,这个连接可以保持一段时间(keep alive), 这段时间,双方可以多次进行 请求和响应,
无需重新建立连接。


5.常见的HTTP 请求方法包括:(客户端角度,对端是服务器)

5.1 GET(获取信息) 查

从服务器 获取 资源信息,这是一种最常见的请求。
比如 要 从服务器 获取 网页资源、获取图片资源、获取用户信息数据等等。

5.2 POST(添加信息,提交信息) 增

添加 资源信息 到 服务器进行处理(例如提交表单或者上传文件)。
比如 要 添加用户信息、上传图片数据 到服务器 等等

5.3 PUT (修改信息) 改

比如 要 更新 用户姓名、地址 等等

5.4 DELETE (删除信息) 删

比如 要 删除 某个用户、某个药品 等等

6.报文格式

####请求消息####
请求行(请求方法 请求资源的地址,不包括IP,IP由传输层指定 协议版本号)
请求头(名字: 值) 每个消息头占一行
Host: www.baidu.com (服务器可能搭建了多个host,所以需要指定HOST参数)

消息体,又叫请求体,不是每个消息都有请求体,和请求头之间有一行空行(3种文本格式:json xml www-form-urlencoded)
用于存放数据信息,get消息不用,post和put消息需要
####请求消息####

 

####响应消息####
响应行(协议版本 状态码 描述状态的短语),也叫状态行
响应头(和请求头一样)

消息体(3种文本格式:json xml www-form-urlencoded)
####响应消息####

状态码
状态码用3位的数字来表示,第一位 的 数字代表 处理结果的 大体类型,常见的有如下几种:

2xx 通常 表示请求消息 没有问题,而且 服务器 也正确处理了。最常见的就是 200
3xx 这是重定向响应,常见的值是 301,302, 表示客户端的这个请求的url地址已经改变了, 需要 客户端 重新发起一个 请求 到另外的一个url。
4xx 表示客户端请求有错误, 常见的值有:
400 Bad Request 表示客户端请求不符合接口要求,比如格式完全错误
401 Unauthorized 表示客户端需要先认证才能发送次请求
403 Forbidden 表示客户端没有权限要求服务器处理这样的请求, 比如普通用户请求删除别人账号等
404 Not Found 表示客户端请求的url 不存在
5xx 表示服务端在处理请求中,发生了未知的错误。通常是服务端的代码设计问题,或者是服务端子系统出了故障(比如数据库服务宕机了)
------------------------------------------
url参数
比如:
https://www.baidu.com/s?wd=iphone&rsv_spt=1
问号后面的部分 wd=iphone&rsv_spt=1 就是 url 参数,

每个参数之间是用 & 隔开的。

上面的例子中 有两个参数 wd 和 rsv_spt, 他们的值分别为 iphone 和 1 。

url参数的格式,有个术语叫 urlencoded 格式。
-------------------------------------------


<br> 代表换行符

标签:协议,HTTP,请求,url,####,服务端,客户端
From: https://www.cnblogs.com/dxtx/p/16822652.html

相关文章

  • CPI 访问需验证的HTTP接口
    CPI访问外围系统接口时,有时需要先访问验证接口,获取AccessToken或得到账密,然后访问具体接口时,将获取到的验证结果传入具体接口进行访问1、OAuth2.0 AccessToken方式1.1、......
  • HttpMessageConverter 专题
    配置HttpMessageConverterHttpMessageConverter是对http的request和response进行自动转换配置HttpMessageConverter可重载下面两个方法任意一个configureMessageConverters:......
  • nginx配置转发https域名到另一个域名上
    server{listen443ssl;server_namewww.test.com;ssl_protocolsTLSv1.2TLSv1.1TLSv1;ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDH......
  • 对称加密、非对称加密 与 HTTPS
    一、对称加密(SymmetricCryptography)对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secretkey)。对称加密有很多种算法,由于它效......
  • http响应Last-Modified和ETag以及asp.net web api实现
    基础知识1)什么是”Last-Modified”?在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标........
  • httppost请求jwt接口,basic认证
    ///<summary>///jwt验证接口///</summary>///<paramname="url"></param>///<paramname="data"></param>///<ret......
  • postman或curl访问https域名,报错unable to verify the first certificate,支付宝支付异
    postman或curl访问https域名,报错unabletoverifythefirstcertificate,支付宝支付异步回调,https不通问题  如上述问题,网上大部分的解决方法就是关闭postman的ssl验......
  • Netty进阶-协议
    5.1、Redis协议//redis协议测试publicclassTestRedis{publicstaticvoidmain(String[]args){finalbyte[]line={13,10};NioEventLoop......
  • java 修改HttpServletRequest的参数或请求头
     场景:过滤器中获取参数Token并添加到请求头(用户认证兼容老系统)请求头和请求参数是不能直接修改,也没有提供修改的方法,但是可以在过滤器和拦截器中使用​​​HttpServletReq......
  • Qt使用https协议发送带参数的post请求
    背景:现在公司项目需要做一个检测更新的功能,通过访问后台接口,判断是否需要更新。后台接口是https协议的,接口需要post请求,需要带参数,来判断是哪个软件需要做检测更新的操......