Web入门-HTTP协议

news2024/9/24 11:31:36

目录

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.coloradmin.cn/o/758402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

动态规划之119杨辉三角 II(第7道)

题目:给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 题目链接:119. 杨辉三角 II - 力扣(LeetCode) 示例: 解法&…

高阶C语言|字符函数和字符串函数--函数的模拟实现

C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中。字符串常量适用于那些对它不做修改的字符串函数 字符函数和字符串函数 一、求字符串长度1.1strlen的使用1.2strlen函数的模拟实现 二…

基于linux下的高并发服务器开发(第一章)- 模拟实现 ls-l 命令

这一小节会用到上面两张图的红色框里面的变量 任务&#xff1a; 模拟实现 ls -l 指令 -rw-rw-r-- 1 nowcoder nowcoder 12 12月 3 15:48 a.txt #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <p…

C++中菱形继承中继承不明确问题

C中菱形继承中继承不明确问题 class A { public:virtual void func1(){cout << "A::func1()" << endl;}int _a; };class B:virtual public A { public:virtual void func1(){cout << "B::func1()" << endl;}int _b; };class C:vi…

JavaScript混淆加密:Ty2y平台配置参数详解

Ty2y是国内一个JavaScript混淆加密平台&#xff0c;可以实现在线JS代码混淆加密。它有多达20多项的参数配置。如下图所示&#xff1a; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 本文将对这些配置实现的混淆加密的效果&#xff0c;进行详细说明&…

基于自注意和残差结构的跨模态情感识别融合网络

题目A cross-modal fusion network based on self-attention and residual structure for multimodal emotion recognition译题基于自注意和残差结构的跨模态情感识别融合网络时间2021年代码https://github.com/skeletonNN/CFN-SR A cross-modal fusion network based on self…

verilog实现数码管静态显示

文章目录 verilog实现数码管静态显示一、任务要求二、实验代码三、仿真代码四、仿真结果五、总结 verilog实现数码管静态显示 一、任务要求 六个数码管同时间隔0.5s显示0-f。要求&#xff1a;使用一个顶层模块&#xff0c;调用计时器模块和数码管静态显示模块。 二、实验代码…

DS-SLAM论文翻译

DS-SLAM:面向动态环境的语义可视化SLAM 摘要-同时定位与绘图(SLAM)被认为是智能移动机器人的一项基本能力。在过去的几十年里&#xff0c;许多印象深刻的SLAM系统已经开发出来&#xff0c;并在某些情况下取得了良好的性能。然而&#xff0c;一些问题仍然没有很好地解决&#x…

windows下mingw 编译boost-1.78.0

1.mingw环境设置 添加C:\cygwin64\bin 到环境变量&#xff0c;cmd运行检查是否安装成功 打开cmd&#xff0c;验证&#xff1a; 2.boost编译 创建文件夹 #后期可以删除&#xff0c;安装Boost.Buildmkdir D:\boost_build#后期可以删除&#xff0c;存放mkdir D:\boost_1_78_0\b…

SpringBoot使用Redis作为缓存器缓存数据的操作步骤以及避坑方案

1.非注解式实现 2.1使用之前要明确使用的业务场景 例如我们在登录时&#xff0c;可以让redis缓存验证码&#xff0c;又如在分类下显示菜品数据时&#xff0c;我们可以对分类和菜品进行缓存数据等等。 2.2导入Redis相关依赖 <dependency><groupId>org.springfra…

Leetcode每日一题(困难):834. 树中距离之和(2023.7.16 C++)

目录 834. 树中距离之和 题目描述&#xff1a; 实现代码与解析&#xff1a; DFS 原理思路&#xff1a; 834. 树中距离之和 题目描述&#xff1a; 给定一个无向、连通的树。树中有 n 个标记为 0...n-1 的节点以及 n-1 条边 。 给定整数 n 和数组 edges &#xff0c; edge…

重定向与转发

转发 package com.qf.controller;import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Htt…

很强!Windows11 渗透测试工具包

项目介绍 基于Windows11打造的一个渗透测试工具包&#xff1b;本项目制作的初衷是帮助渗透新手快速搭建工作环境&#xff0c;工欲善其事&#xff0c;必先利其器&#xff1b; 关注【Hack分享吧】公众号&#xff0c;回复关键字【230516】获取下载链接 目前已集成了各类常用开发环…

MySQL(一)基本架构、SQL语句操作、试图

MySQL系列文章 MySQL&#xff08;一&#xff09;基本架构、SQL语句操作、试图 MySQL&#xff08;二&#xff09;索引原理以及优化 MySQL&#xff08;三&#xff09;SQL优化、Buffer pool、Change buffer MySQL&#xff08;四&#xff09;事务原理及分析 MySQL&#xff08;五&a…

B2B商城赋能传统企业加速转型

企业和企业之间的交易涉及大量的人力、财力、物力的投入&#xff0c;还需要花大量的时间进行审核&#xff0c;其中的工作量是十分巨大的&#xff0c;而B2B电商模式的出现&#xff0c;妥善的处理了以上这些难题&#xff0c;来一起看看B2B电商模式给企业之间的交易带来了哪些便利…

[Linux] 网络编程 - 初见TCP套接字编程: 实现简单的单进程、多进程、多线程、线程池tcp服务器

网络的上一篇文章, 我们介绍了网络变成的一些重要的概念, 以及 UDP套接字的编程演示. 还实现了一个简单更简陋的UDP公共聊天室. [Linux] 网络编程 - 初见UDP套接字编程: 网络编程部分相关概念、TCP、UDP协议基本特点、网络字节序、socket接口使用、简单的UDP网络及聊天室实现……

Windows 10 - Flask 框架 学习总结 1

目录 一、环境配置安装安装 Virtualenv 虚拟环境Virtualenv 虚拟环境内安装 Flask 框架Tips: 二、Flask 框架的初级学习Flask 的 app 补充说明&#xff1a;运行 Flask 的最小应用(app)(后期) 解决 Warning 报错&#xff0c;开启 WSGI 服务 理解调试模式 app.run理解 Flask 框架…

直流有刷电机

直流有刷电机 直流有刷电机(Brushed DC motor) 具有结构简单、易于控制、成本低等特点&#xff0c;在一些功能简单的应用场合&#xff0c;或者说在能够满足必要的性能、低成本和足够的可靠性的前提下&#xff0c;直流有刷电机往往是一个很好的选择。例如便宜的电子玩具、各种风…

辅助驾驶功能开发-功能规范篇(22)-5-L2级辅助驾驶方案功能规范

1.3.5 LKA 系统功能定义 1.3.5.1 状态机 1.3.5.2 状态迁移表 初始状态转移状态转移条件INITOFF系统自检过程中&#xff0c;为 OFF 状态&#xff0c;自检无故障且车辆上次掉电前&#xff0c;为 OFF 状态INITSTANDBY自检无故障&#xff0c;车辆为首次上电&#xff0c;或者上次…

力扣 1005. K 次取反后最大化的数组和

题目来源&#xff1a;https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations/description/ C题解1&#xff1a;最直接的想法就是负的变正的&#xff0c;如果负的元素数量小于k&#xff0c;就挑选绝对值大的负数变正&#xff1b;如果负的元素数量大于k&#xf…