Web开发学习HTTP协议、通过浏览器控制台学习HTTP协议。

文章目录

  • HTTP协议
    • 1.HTTP协议是什么?
    • 2.HTTP协议的特点
    • 3.什么是URL?
    • 4.通过浏览器控制台学习HTTP协议
      • Request Headers请求数据格式说明
      • Response Headers请求数据格式说明
    • 5.HTTP工作原理

HTTP协议

1.HTTP协议是什么?

HTTP协议是一种超文本传输协议,规定了浏览器和服务器之间的数据传输的规则(也可以说是浏览器与服务器之间进行数据交互的数据格式)

例如,浏览器需要向服务端发送请求来获取一些数据,因此浏览器携带请求数据先向服务器发送请求,服务器解析浏览器的请求数据后再给浏览器响应对应的数据,让浏览器解析。浏览器和服务器之间进行数据交互,需要按照约定的数据格式进行双方才能进行相应的数据解析。

HTTP概括如下:

  • HTTP协议是用于从服务器传输超文本到本地浏览器的传送协议。
  • HTTP基于TCP/IP通信协议进行传送数据(数据可以是HTML文件,图片,查询结果等)
  • HTTP是一个属于应用层的面向对象的协议。
  • HTTP协议工作于客户端-服务器架构之上。

2.HTTP协议的特点

  • HTTP支持B/S(浏览器与服务器架构模式)模式C/S(客户机与服务器架构)模式
  • 简单快速:客户端向服务器请求服务时,只需传送请求方法和路径即可。请求方法包括GET、POST、PUT、HEAD等。
  • 灵活性:HTTP允许传输任意类型的数据对象。
  • 面向连接:限制每次连接只处理一个请求。服务器处理完客户的请求并收到客户的应答后,立即断开。可以节省传输时间。
  • 无状态:HTTP协议对于处理没有记忆能力,如果在处理过程中客户端与服务器端之间的连接断开,则数据必须重传。每次请求-响应都是独立的,速度会比较快但同时也导致多次请求间不能共享数据。
  • 基于请求-响应模型:一次请求对应一次响应

3.什么是URL?

HTTP使用**URI(统一资源标识符)**来传输数据和建立连接。

**URL是一种特殊类型的URI,包含了用于查找某个资源的足够信息。**它用于定位和识别互联网上的资源的地址。它是一个字符串,由多个部分组成,用于指定资源的位置和协议。

简单来说我们平时在浏览器中所看到的网址就是URL,在项目开发中我们需要指定文件,图片的位置也是URL。

以一个URL示例:https://www.example.com/index.html
一个URL主要包括以下几个部分

  • 协议部分:“https://”,指定使用的协议
  • 域名部分:指定了资源所在的服务器域名。
  • 路径部分:指定了服务器上资源的路径。

URL还可以包含其他部分,如查询参数、片段标识符等,用于进一步定位和描述资源。
例如本博客草稿的URL:https://i.cnblogs.com/posts/edit;postId=17878440

4.通过浏览器控制台学习HTTP协议

1.按下F12按键或者右建"检查",打开开发者工具

2.选择网络(Network)查看请求内容

3.点击这个请求,就可以看到相关的协议信息

部分浏览器是英文显示,显示的内容为:General(常规),Response Headers(响应标头),Request Headers(请求标头)

4.点击旁边的按钮“原始”,则会显示原始数据格式

可以看到,原始数据格式就是文本字符串,且这个文本字符串的格式是固定的

Request Headers请求数据格式说明

请求数据格式大致分为三个部分:请求行,请求头,请求体

1.请求行:即请求数据的第一行,由请求方式(GET或POST),资源路径,请求协议三部分组成。

  • GET请求方式:没有请求体,大小有限制
  • POST请求方式:有请求体,无大小限制

2.请求头:请求头为“key:value"的格式,即"请求头:请求头值"的形式。
请求头的值中会包含很多信息,包括浏览器版本,主机地址,数据格式等

常见的请求头的值

请求头名称请求头的值
Host请求的主机名
User-Agent浏览器版本
Accept表示浏览器能接收的资源类型
Accept-Language表示浏览器的偏好语言,服务器可以据此返回不同语言的网页
Accept-Encoding表示浏览器可以支持的压缩类型
Content-Type请求主体的数据类型
Content-Length请求主体的大小(单位:字节)

3.请求体:请求体是POST请求特有的一个组成部分,存放请求参数,请求数据

总结:Request请求数据格式内容框架如下:

Response Headers请求数据格式说明

响应数据格式大致分为三个部分:响应行,响应头,响应体

1.响应行:响应数据的第一行,包含协议,状态码,描述(可能省略)三个部分。

状态码的作用是告诉客户端本次响应的状态,常见状态码有

200,请求成功。201,已创建,成功请求并创建了新的资源。202,已接受,已接受请求,但未处理完成。301,永久重定向,请求的资源被永久移到新URL,今后任何新的请求都应使用新的URL代替。302,暂时重定向,资源只是临时被移动,客户端仍使用原有的URL。400,客户端请求的语法错误,服务器无法理解。401,请求要求用户的身份认证。(英文描述:OK)403,服务器理解客户端的请求,但是拒绝执行的请求。404,服务器无法根据客户端的请求找到资源。500,服务器内部错误,无法完成请求。501,服务器不支持请求的功能,无法完成请求。503,由于超载或系统维护,服务器暂时无法处理客户端的请求。

所有状态码及其详细信息可访问网站: 状态码大全

状态码分为5类,范围从100~500,状态码分类如下

1**:信息,服务器收到请求,需要请求者继续执行操作2**:成功,操作被成功接收并处理3**:重定向,需要进一步的操作以完成请求4**:客户端错误,请求包含语法错误或无法完成请求5**:服务器错误,服务器在处理请求的过程中发生了错误

2.响应头:同请求头一样,数据格式为“key:value"的格式,即"响应头:响应头值"的形式。

常见的响应头

响应头响应头的值
Content-Type表示响应内容的类型,例如txt/html,application/json。
Content-Length表示该响应内容的长度(字节数)
Content-Encoding表示该响应压缩算法,例如gzip
Cache-Control指示客户端如何缓存,例如max-age=300表示最多缓存300秒
Set-Cookie告诉浏览器为当前页面所在的域设置Cookie

3.响应体:响应数据格式的最后一行,存放响应数据,通常为CJSON格式

5.HTTP工作原理

在浏览器地址键入URL,工作流程如下:

    1. 浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址
    1. 解析出IP地址后,根据该IP地址和默认端口号80,与服务器建立TCP连接
    1. 浏览器发出HTTP请求给服务器
  • 4.服务器对浏览器请求做出响应,并把对应的html文本发送给浏览器

    1. 释放TCP连接
    1. 浏览器将该html文本显示出来

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

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

相关文章

前端实现主题(深色模式)切换的几种方案

方案一:link 动态引入 通过改变link 标签的 href 属性实现动态修改样式(暂不推荐这种方案) 优点:实现了按需加载,提高了性能; 缺点:动态加载样式文件,可能会因为网络问题导致样式…

使用Scanner扫描器和if语句来判断QQ等级的活跃程度

一、主要特点 总体使用try包围起来,用到了Scanner扫描器,还用到了若干if语句。 二、运行代码 import java.util.Scanner; public class QQtest {public static void main(String[] args){try (Scanner scan new Scanner(System.in)) {System.out.pr…

吉利护航,宣称比友商“更懂车”,魅族造车的底气与底色

继小米、华为后,又一家手机厂商宣布跨界造车。 在近日举办的2023魅族秋季无界生态发布会上,星纪魅族集团(下称“魅族”)董事长兼CEO沈子瑜宣布,魅族正式进入汽车市场,将在2024年第一季度启动“DreamCar共创…

【STM32】STM32学习笔记-课程简介(01)

00. 目录 文章目录 00. 目录01. 课程简介02. 硬件设备03. 软件工具04. 硬件套件4.1 面包板和跳线/飞线4.2 杜邦线和STM32最小系统板4.3 STLINK和OLED显示屏4.4 LED和按键4.5 电位器和蜂鸣器4.6 传感器和旋转编码器4.7 USB转串口和MPU60504.8 Flash闪存和电机模块4.9 SG90舵机 0…

win10与 vm虚拟机win7共享文件夹创建

1:在win10(主机)电脑先随意共享一个文件夹 2:在win10(主机)上创建一个网络映射 右键此电脑选择映射网络驱动器 成功后会多出这个网络位置 3:win7虚拟机设置 在虚拟机中点击计算机右键添加一个网络位置

C# Onnx CenterNet目标检测

目录 效果 模型信息 项目 代码 下载 效果 模型信息 Inputs ------------------------- name:input.1 tensor:Float[1, 3, 384, 384] --------------------------------------------------------------- Outputs ------------------------- name&a…

安卓开发引入网络图片

<ImageViewandroid:id"id/img01"android:layout_width"match_parent"android:layout_height"200dp"android:layout_weight"1"/>ImageView加载网路图片 第一步&#xff1a;添加网络权限 <uses-permission android:name"…

vue使用实现录音功能js-audio-recorder

前言 最近项目中需要实现一个录音上传功能&#xff0c;用于语音评论可以上录音。 下载插件&#xff1a; npm i js-audio-recorder完整代码 <template><div style"padding: 20px;"><h3>录音上传</h3><div style"font-size:14px"…

“轻松管理视频文件:高效归类与统一重命名“

随着电子设备的普及&#xff0c;我们的视频文件可能来自各种不同的源头&#xff0c;如何高效地管理和查找这些文件成为了一个问题。今天&#xff0c;我们将为您提供一个完美的解决方案——自动归类并统一重命名视频文件。 首先&#xff0c;第一步&#xff0c;我们要进入文件批…

我一人全干!之vue3后台管理中的大屏展示。

使用大屏展示的时候有很多种场景&#xff0c;众多场景都是为了实现大屏自适应。 大屏&#xff0c;顾名思义&#xff0c;就是放在一个固定的屏幕上看的&#xff0c;即使你不做自适应&#xff0c;放在一个固定的屏幕上看也没啥问题&#xff0c;但是很多做大屏的是为了在PC端看&am…

【JAVA】Maven构建java-grpc-protobuf代码生成测试

本次是通过Maven工具构建Java测试工程&#xff0c;需要将原本通过gradle构建的项目需要通过maven构建加入公司代码库&#xff0c;通过Maven构建涉及到接下来要介绍的插件&#xff0c;总是发现pom.xml编译不通过&#xff0c;看到网上都是千篇一律的插件配置&#xff0c;自己就是…

软件产品研发过程 - 二、概要设计

软件产品研发过程 - 概要设计 相关系列文章 软件产品研发管理经验总结-管理细分 软件研发管理经验总结 - 事务管理 软件研发管理经验总结 - 技术管理 软件产品研发过程 - 二、概要设计 目录 软件产品研发过程 - 概要设计一、概要设计概述二、概要设计过程1、模块概述2、应用场景…

68从零开始学Java之Set集合都有哪些特性

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在上一篇文章中&#xff0c;壹哥带大家学习了List集合的用法和特性&#xff0c;尤其是对ArrayList和L…

无人奶柜:零售业的自助革命

无人奶柜&#xff1a;零售业的自助革命 无人奶柜作为零售业的一项创新技术&#xff0c;正在改变人们购买奶制品的方式&#xff0c;并对零售业产生深远的影响。它的出现提供了更便捷、高效、便利的购物体验&#xff0c;节省了人力成本&#xff0c;同时也为零售商带来了创新机会和…

大师学SwiftUI第18章Part3 - 自定义视频播放器

视频 录制和播放视频对用户来说和拍照、显示图片一样重要。和图片一样&#xff0c;Apple框架中内置了播放视频和创建自定义播放器的工具。 视频播放器 SwiftUI定义了​​VideoPlayer​​视图用于播放视频。该视图提供了所有用于播放、停止、前进和后退的控件。视图包含如下初…

Notes数据结合报表工具Tableau

大家好&#xff0c;才是真的好。 我希望你看过前面两篇内容《Domino REST API安装和运行》和《Domino REST API安装和运行》&#xff0c;更希望你能看过《Notes数据直接在Excel中统计&#xff01;》&#xff0c;有了这些内容作为基础&#xff0c;今天的内容就显得特别简单。 …

Freertos任务管理

一.任务状态理论讲解 正在执行的任务状态是running&#xff0c;其他执行的等待执行的任务状态是ready 1.修改间隔时间 2.任务状态 处于各个状态的任务是怎样被管理起来的&#xff1a;链表 3.代码 TaskHandle_t xHandleTask1; TaskHandle_t xHandleTask3;static int task1f…

6个实用又好用的交互原型工具!

在 UI/UX 设计中&#xff0c;原型设计是至关重要的一步。正如用户体验中的其它环节一样&#xff0c;有无数的交互原型工具可以帮助你完成原型设计。市场上有太多的交互原型工具&#xff0c;如果你不知道选择哪一种&#xff0c;那么我们将为你介绍 6 个实用又好用的交互原型工具…

Multidimensional Scaling(MDS多维缩放)算法及其应用

在这篇博客中&#xff0c;我将与大家分享在流形分析领域的一个非常重要的方法&#xff0c;即多维缩放MDS。整体来说&#xff0c;该方法提供了一种将内蕴距离映射到显性欧氏空间的计算&#xff0c;为非刚性形状分析提供了一种解决方案。当初就是因为读了Bronstein的相关工作【1】…

智能优化算法应用:基于鼠群算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于鼠群算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于鼠群算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鼠群算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…