当前位置: 首页 > news >正文

HTTP协议相关知识

1 HTTP协议的解读

1.1 HTTP和HTTPS区别

HTTP协议:超文本传输协议是互联网上应用最为广泛的一种网络协议。所有的HTML文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法

HTTPS协议:HTTP协议的安全版,在HTTP下加入SSL层

        ssl(Secure Sockets Layer 安全套接层)主要用于web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全

1.2 HTTP请求过程

client:更为具体代表浏览器、程序等,通过某个程序发送请求就是客户端 

url:统一资源定位符,是用于完整地描述Internet上网页和其他资源地址的一种标识方法

  1. 当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为”Get“和”Post“两种方法
  2. 当在浏览器输入URL http://www.baidu.com时,浏览器发送一个Request请求去获取http://www.baidu.com的html文件,服务器把Response文件对象发送回给浏览器
  3. 浏览器分析Response中的HTML,发送其中引用了很多其他文件,比如Images文件,CSS文件、Js文件,浏览器会自动再次发生Request去获取图片,CSS文件或JS文件
  4. 当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来

 

 1.3 HTTP请求信息

    在浏览器中输入URL地址,访问某个网站,发送一个HTTP请求到服务器的请求消息,包括以下格式:

请求行  请求头部  空行  请求数据

访问网址不是只有一次请求 ,如下图:不单单只请求了www.baidu.com

ip地址存在端口,https默认端口443

1.4 HTTP响应信息

服务器接收到请求后,返回的HTTP响应由四个部分组成,分别:

状态行 消息报头 空行 响应正文

状态行:表示返回数据状态是什么情况

HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding:gzip
Content-Type: text/html; charset=utf-8  (返回类型格式如果返回是json格式,则为:application/json)
Date: Thu, 25 Jul 2024 09:00:44 GMT
Isprivate:1
Server:BWS/1.1
Traceid:1721898044288966759412702887217014994671
Transfer-Encoding:chunked
X-Ua-Compatible:IE=Edge,chrome=1
X-Xss-Protection:1;mode=block

1.4 HTTP响应状态码

常见响应状态码

 #1xx:信息

100 continue
服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求

#2xx:成功

200 0K
请求成功(其后是对GET和POST请求的应答文档)
201 Created
请求被创建完成,同时新的资源被创建。

# 3xx:重定向

300 Multiple choices

多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址。

#4xx:客户端错误

404:页面找不到

#5xx:服务器错误

500 Internal Server Error
请求未完成。服务器遇到不可预知的情况。
502 Bad Gateway
请求未完成。服务器从上游服务器收到一个无效的响应。
503 Service unavailable
请求未完成。服务器临时过载或当机。
504 Gateway Timeout
网关超时。
505 HTTP Version Not supported
服务器不支持请求中指明的HTTP协议版本

 

1.5 HTTP请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。

序号方法描述
1GET用于获取资源(没有请求体),,如浏览器查询
2POST向指定资源提交数据进行处理请求-更新资源(如提交表单或上传文件)数据被包含在请求体中,POST请求可能会导致新的资源的建立或者已有资源的修改,如登录注册
3PATCH用于更新服务器的数据(局部更新)
4DELETE用于服务器删除指定的数据
5PUT用于更新服务器的数据(数据整体更新)

HTTP请求常用的 Get和 Post 两种方法
GET是从服务器上获取数据,POST是向服务器传送数据

GET和POST区别:

        GET请求参数显示,都显示在浏览器网址URL上,HTTP服务器根据该请求所包含URL中的响应内容,即“Get"请求的参数是URL的一部分。例如: http://www.baidu.com/s?wd=Chinese&tt=9999(带问号:query string查询字符串)

        POST请求参数在请求体当中,息长度没有限制而且以隐式的方式进行发送,通常用来向HTTP服务器提交量比较大的数据(比如请求中包含许多参数或者文件上传操作等),请求的参数类型包含在“Content-Type”消息头里,指明该消息体的媒体类型和编码(放到body请求体中,也可以放到query string)

        Get请求不安全,POST请求也是不安全post相对安全,因为其放到body当中肉眼看不到


http://www.mrgr.cn/news/6078.html

相关文章:

  • Python学习-打工人挣钱
  • centos7.9系统安装cloudpods(一)
  • 一文讲清!如何用OA做好固定资产盘点?
  • 如何用Python实现山东省旅游数据爬虫与K-means满意度分析
  • uni-app开发日志:实现无限层级树形分类页面,通过schema2code生成代码并在此基础上完善修改list、add和edit页面
  • 高并发登录模块
  • 松下弧焊机器人维修 控制柜故障 连接线修复
  • Eureka 服务发现原理及实践
  • 『功能项目』移动后的光标显示【04】
  • (QT-UI)十四、在时间轴上绘制一段段时间片
  • STM32中的DMA
  • UDP和TCP协议段格式分析
  • 科技在教育领域的创新应用与在工作场所的智能化转型
  • 如何用Chatgpt制作流程图呢?
  • Prompt-to-prompt image editing with cross attention control
  • 云计算实训32——roles基本用法、使用剧本安装nginx、使用roles实现lnmp
  • vue3 组合式API
  • vue3实现 附件上传简单代码示例【自用】
  • 华为账号“一键登录”能力让美团用户尽享安全便捷的登录体验
  • 美国高防服务器测评