Web入门-HTTP协议

目录

HTTP概述

HTTP特点

HTTP请求协议

请求数据的格式

响应数据的格式

响应的状态码

HTTP协议的解析


HTTP概述

  • HTTP:Hyper Text Transfer Protocol,超文本传输协议,规定浏览器和服务器之间数据传输的规则。(即请求数据和响应数据的格式)
  • 以上一篇SpringBoot项目的案例为例
    • 在浏览器中发送对应的请求,服务器对其进行响应
    • 请求数据

    • 响应数据

HTTP特点

  • 基于TCP协议:面向连接,安全
  • 基于请求-响应模型的:一次请求对应一次响应
  • HTTP协议是无状态的协议:对于事务处理没有记忆功能。每次请求-响应都是独立的。
    • 缺点:多次请求间不能共享数据
    • 优点:速度快

HTTP请求协议

请求数据的格式

三部分:请求行、请求头、请求体

  • 请求行:请求数据第一行(请求方式、资源路径、协议)

  • 请求头:第二行开始以键值对的形式
    •  
    • 常见请求头的含义:
      • Host请求的主机名
        User-Agent浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0...Chrome/79,IE浏览器的标识类似Mozilla/5.0(windowsNT...)like Gecko
        Accept标识浏览器接受的资源类型,如text/*,image/*或者*/*表示所有
        Accept-Language表示浏览器偏好的语言,服务器可以据此返回不同语言的网页
        Accept-Encoding表示浏览器支持的压缩类型,例如gzip,deflate等
        Content-Type请求主体的数据类型
        Content-Length请求主体的大小(单位:字节)
  • 请求体:POST请求,存放请求参数

    • (GET和POST请求方式的区别,也是一道面试题

      GET:请求参数在请求行中,没有请求体,请求大小有限制

    • POST:请求参数在请求体中,POST请求没有大小限制

响应数据的格式

三部分:响应行、响应头、响应体

  • 响应行:响应数据第一行(协议、状态码、描述)
  • 响应头:第二行开始,以键值对的形式呈现的数据
    • 常见响应头
      • Content-Type表示响应内容的类型,例如text/html、application/json=》将来客户端浏览器获取到数据后就会按照对应的数据格式进行处理
        Content-Length表示响应内容的长度(字节数)
        Content-Encoding表示该响应压缩算法,例如gzip。=》服务器端采用什么方法对数据进行压缩;客户端也用对应的方法进行解压缩
        Cache-Control指示客户端应如何缓存,例如max-age=300表示最多可以缓存300秒=》服务器端返回的数据在浏览器缓存的时间
        Set-Cookie告诉浏览器当前页面的所在的域设置cookie

  • 响应体:最后一部分,存放响应数据

响应的状态码

  • 状态码大类
    • 1xx响应中-临时状态码,表示请求已经接收,告诉客户端应该继续请求或者它如果已经完成则忽略它
      2xx成功-表示请求已经被成功接受,处理已完成
      3xx重定向-重定向到其他地方,让客户端再发送一次请求以完成整个处理
      4xx客户端错误-处理发生错误,责任在客户端。如:请求了不存在的资源,客户端未被授权,禁止访问等。
      5xx服务器错误-处理发生错误,责任在服务器。如:程序抛出异常
  • 常见响应状态码(200、404、500

     状态码大全:HTTP 响应状态码 - HTTP | MDN (mozilla.org)

HTTP协议的解析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/18431.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖音短视频seo源码开发部署-技术分享(四)

一、 抖音短视频seo源码开发流程 抖音短视频SEO源码开发流程如下: 1.分析需求:首先需要明确你的SEO目标。分析竞争对手,了解抖音短视频平台的规则,选定目标关键词和主题。 2.编写代码:根据需求编写代码,…

Invalid name=“org.apache.dubbo.config.ApplicationConfig#0“

上一篇文章是springboot 集成 dubbo: spring boot 集成dubbo_Demonor_的博客-CSDN博客 在集成的时候出现了一些异常,在这里记录一下,并排查出原因 异常信息1: [2m2023-07-11 20:38:39.387[0;39m [32m INFO[0;39m [35m21492[0;…

【Flutter】Flutter 如何使用 flutter_swiper

文章目录 一、前言二、flutter_swiper 的概念三、Flutter 中的 flutter_swiper1. 使用的库2. 方法介绍 四、代码示例1. 简单示例2. 完整示例 五、总结 一、前言 在移动应用开发中,轮播图是一种常见的 UI 元素,它可以用来展示一系列的图片或者内容。在 F…

SQL-每日一题【550.游戏玩法分析Ⅳ】

题目 Table: Activity 编写一个 SQL 查询,报告在首次登录的第二天再次登录的玩家的比率,四舍五入到小数点后两位。换句话说,您需要计算从首次登录日期开始至少连续两天登录的玩家的数量,然后除以玩家总数。 查询结果格式如下所示…

OSS-Fuzz----OSS-Fuzz简介

【原文链接】OSS-Fuzz----OSS-Fuzz简介 一、OSS-Fuzz 简介 OSS-Fuzz是由Google开发和维护的一个开源项目,旨在帮助开发者改善软件的安全性和稳定性。它是一个自动化的模糊测试工具,可以在大规模的测试环境中发现软件中的漏洞和错误。 OSS-Fuzz使用模糊…

「深度学习之优化算法」(十)烟花算法

1. 烟花算法简介 (以下描述,均不是学术用语,仅供大家快乐的阅读)   烟花算法(Firework Algorithm,FWA)是一种受烟花爆炸产生火星,并继续分裂爆炸这一过程启发而得出的算法。算法的思想简单,但具体实现复杂。算法提出时间并不长,但是已经有了不少的改进研究和较为全…

skywalking安装

目录 skywalking部署示意图 server安装 裸机安装 docker单节点安装 docker集群安装 k8s安装 helm安装(官方) k8s yaml安装 动态配置安装 client agent安装 skywalking部署示意图 skywalking ui - web界面管理程序oap server - skywalking服务程序nacos - skywalking集…

OpenCV 的安装与配置指南(Windows环境,Python语言)

OpenCV 的安装与配置指南(Windows环境,Python语言) 导语一、安装 Python 二、安装 OpenCV 库三、配置 OpenCV 环境变量四、验证 OpenCV 安装总结 导语 OpenCV 是一个功能强大的计算机视觉库,广泛应用于图像处理和计算机视觉领域。…

MongoDB 简介及安装(windows环境下)

一、MongoDB 简介 1、MongoDB 是什么 MongoDB 是一个开源的、基于分布式的、面向文档存储的非关系型数据库。是非关系型数据库当中功能最丰富、最像关系数据库的。 MongoDB 将数据存储为一个文档,数据结构由键值(key>value)对组成。MongoDB 文档类似于 JSON 对…

Python启动UDP服务,监听并接收客户端数据

可以使用Python的socket库实现UDP协议的验证,以下是一个简单的示例代码: 服务器: [rootlocalhost python]# cat udp_server.py import socket# 创建一个UDP socket udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 绑定到…

(赠书活动第4期)编译语言的思考过程

面向对象编程(Object-Oriented Programming,简称OOP)是一种广泛应用于编程领域的编程范式,对于前端和后端开发都具有重要意义。在这篇说明中,我们将探讨面向对象编程对于前端和后端开发的重要性,并探讨其优…

云和DevOps如何帮助加速数字化转型?

1.云和 DevOps:概述 数字化转型已成为寻求在现代时代蓬勃发展的企业的一项关键举措。为了加速这一转型,组织正在利用云计算的力量并采用DevOps实践。云计算提供可扩展且灵活的基础架构,而 DevOps 则支持协作和持续交付的文化。本文将探讨云和…