《图解HTTP》 学习日记

1.了解WEB以及网络基础

1.1使用HTTP协议访问WEB

web页面显示:根据web浏览器地址栏中输入指定的URL,web浏览器从web服务端获取文件资源(resource)等信息,从而显示出web页面

 1.2网络基础TCP/IP

通常使用的网络(包括 互联网)是在tcp/ip协议族的基础上运作的,而http属于它内部的一个子集

1.2.1TCP/IP协议族

计算机与网络设备相互通信,双方就需要使用同样的方法,比如,你和别人约定在某个地方见面,见面前,约定好在什么地方见面,见面时双方的特征,以及见面以后做什么等规则都要事先确定,不同硬件、操作系统之间的通信,都需要一种规则,这种规则称为协议(protocol)

协议包含各种内容:从电缆的规格到IP地址的选定方法,寻找异地用户的方法,双方建立通讯的顺序,以及WEB页面现实的需要处理的步骤等等,

TCP/IP一种解释是,互联网所关联的协议集合。另一种是特指TCP/IP这两种协议。还有一种是IP通信过程中,使用到的协议族的统称

1.2.2TCP/TP分层管理

TCP/IP协议族按层次分成以下4层:应用层,传输层,网络层,数据链路层 

分层作用类似模块化,每一层只有处理当前层的问题即可,让每一层更专注处理每一层该处理的问题 

1.2.2.1应用层

应用层决定了向用户提供应用服务时的通信活动

 应用服务比如:

  • FTP(File Transfer Protocol,文件传输协议)
  • DNS(Domain Name System,域名系统)等

HTTP协议处于应用层

1.2.2.2传输层

传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输

传输层有两个性质不同的协议:

  • TCP(Transmission Control Protocol,传输控制协议)
  • UDP(User Data Protocol,用户数据报协议)
 1.2.2.3网络层(又名网络互连层)

网络层用于处理在网络上流动的数据包,数据包是网络上传输最小的数据单位,该层还规定了发送给对方数据包的传输路线。

与对方计算之间或则通过对台计算机或则网络设备进行传输时,网络层就是在众多路线中选择一条路线

 1.2.2.4链路层

用来处理链接网络的硬件部分,包括控制操作系统,硬件的设备驱动,NIC(Network interface Card,网络适配器,即网卡),光纤,等一切物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均属于链路层的作用范围

1.2.3 TCP/IP通信传输流

  • 利用TCP/IP协议族进行网络通信时,发送端从客户端从上往下走,接收端服务端从下往上走

 HTTP举例说明:

  1. 发送端客户端在应用层(http协议)发送一个web页面的http请求
  2. 到了传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层
  3. 到了网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层
  4. 到了接收端的服务器在链路层接收到数据,按顺序往上层发送,当传输到应用层,才能算真正的接收到由客户端发送过来的HTTP请求

 发送端在层与层之间传输数据时候,每经过一层时候必定会被打上一个该层的所属的首部信息,反之接收端在层与层传输数据时候,没经过一层会把对应的首部消去,这种数据信息包装起来的做法称为封装

 1.3 与HTTP关系密切的协议:IP、TCP、DNS

1.3.1 负责传输的IP协议

IP(internet Protocol)网络协议处于网络层,作用是把各种数据包发送给对方,其中最重要的条件IP地址和MAC(Media Access Control Adress)地址,

  • IP :节点分配的地址,可变,可以和mac进行配比
  • MAC:网卡所属的固定地址,基本上不会更改,可以和ip进行配比
1.3.1.1 使用ARP协议进行MAC地址通信

        ARP(Adress Resolution protocol)协议,是一种解析地址的协议,根据通信方的IP地址可以反查出对应的MAC地址

  •   IP之间通信会依赖于MAC地址,正常情况非统一局域网(lan)下的通信是通过多台计算机和网络设备的中转才可以连接到对方,在中转的时候,会利用下一站中转设备的MAC地址搜索下一个中转目标。这个过程使用到的协议就是ARP

1.3.2 确保可靠性的TCP协议

处于传输层的TCP,可以确定数据最终是否送达,发送过程把大块数据分割成报文为单位的数据包进行传输。

 1.3.2.1 可靠的三次握手

TCP协议采用三次握手策略来确定数据是否传输成功,TCP协议处理好数据发送后,会向对方确定是否发送成功,握手过程使用了TCP标志SYN(synchronize)和ACK(acknowledgement)

握手过程如有中断,会进行相同的顺序再次发送 

 1.4 负责域名解析的DNS服务

 DNS(Domain name System)服务和HTTP一样处于应用层,它提供了域名到IP之间的解析服务

 计算机既可以被赋予IP地址也可以被赋予主机名和域名例如www.hackr.jp

正常情况下访问另一台计算机是通过域名或则主机名,但是计算机擅长处理数字,所以就需要DNS来解析

DNS可以通过域名查找IP,也可以通过IP逆向查找对方域名

 1.5 各种协议之间的关系

 

 1.5 URI和URL

URI(Uniform Resource Identifier) 统一资源标识符,URL(uniform Resource locator)统一资源定位符

URI:表示由某个协议方案表示的定位符,如(https ftp) 等,表示指定的URI必须涵盖全部必要的信息

URL:例如www.baidu.com,可见URL是URI的子集

2.简单的HTTP协议

2.1 HTTP用于客户端和服务端之间的通信

客户端:请求访问资源

服务端:提供响应资源

 

仅有一条路线通信时,应用http协议的时候必然有一端是客户端,另一端是服务端 

2.2通过请求和响应的交换达到通信 

通信是建立于客户端发出了请求 ,服务器在没有收到请求前是不是发出通信的

 

客户端: 发出请求下面是请求报文

  • GET: 表示请求方法(method)
  • /idnex.htm: 表示请求资源的访问对象也叫做请求URI(request-URI)
  • HTTP/1.1: http版本号提示客户端使用的HTTP协议功能

综合意思就是通过HTTP协议,使用GET方法访问某台服务器上的 /idnex.htm文件

  • 请求报文: 是由请求方法,URI,协议,可选的请求首部字段,和内容实体构成的

 

接到收请求内容实体的服务器,会将请求内容的处理结果以响应的形式返回

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VSCODE使用Echarts组件库(不是vue)

第一步打开Echarts官网 Examples - Apache ECharts 第二步随便点击一个图形点击我圈的按钮 第三步

道品科技智慧农业与云平台:未来农业的变革之路

随着全球人口的不断增长,农业面临着前所未有的挑战。如何在有限的土地和资源上提高农业生产效率,成为了各国政府和农业从业者亟待解决的问题。智慧农业的兴起,结合云平台的应用,为农业的可持续发展提供了新的解决方案。 ## 一、智…

C++实现银行排队系统

网上看到的设计要求&#xff1a; 基本效果已经实现&#xff0c;希望大家帮忙指点指点。 程序中的一些基本模块 程序处理中的一些流程图 程序运行结果如下图&#xff1a; 程序代码如下&#xff1a; #include <iostream> #include <string> #include <random&g…

新版2024AndroidStudio项目目录结构拆分

如题 下载了最新版的android studio 发现目录结构和以前不一样 自动帮你合并了 如何层层抽丝剥茧呢 按照一下步骤即可解决问题&#xff01;

【Rust自学】11.6. 控制测试运行:并行和串行(连续执行)测试

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.6.1. 控制测试的运行方式 cargo test和cargo run一样&#xff0c;cargo test也会编译代码并生成一个二进制文件用于测试&#xff0c;…

linux:文件的创建/删除/复制/移动/查看/查找/权限/类型/压缩/打包

关于文件的关键词 创建 touch 删除 rm 复制 cp 权限 chmod 移动 mv 查看内容 cat(全部); head(前10行); tail(末尾10行); more,less 查找 find 压缩 gzip ; bzip 打包 tar 编辑 sed 创建文件 格式&#xff1a; touch 文件名 删除文件 复制文件 移动文件 查看文…

Docker 基础知识

背景 传统的linux的环境部署 命令多步骤多安装版本多 使用docker的话&#xff0c;一个命令就可以全部搞定 安装linux 之前安装过&#xff0c;所以直接使用的开罩进行复制的如果之前配置过静态地址&#xff0c;需要改成IPV4静态地址访问 安装docker 参考连接&#xff1a;https:/…

Docker 从入门到精通

文章目录 Ubuntu 安装Docker步骤前言1. 进入Docker官网&#xff0c;进入开发者页面2. 选择适合自己的安装方式3. 安装 Docker1.更新系统包&#xff0c;安装插件&#xff0c;创建秘钥及目录2.安装 Docker 软件包3.设置开机启动4.通过运行 hello-world 镜像验证安装是否成功 常见…

概率图模型01

机器学习中&#xff0c;线性回归、树、集成和概率图都属于典型的统计学习方法&#xff0c;概率图模型会更深入地体现出‘统计’两字 概率图模型的常见算法 概率图模型中的图 概率图模型如图主要分为两种&#xff0c;即贝叶斯网络和马尔可夫网络&#xff0c;有向图与无向图&…

Vue Router4

Vue Router 是 Vue.js 官方的路由管理器。Vue Router 基于路由和组件的映射关系&#xff0c;页面路径发生改变&#xff0c;就进行对应的组件切换。 安装&#xff1a; npm install vue-router。 基本 使用&#xff1a; // src/router/index.js import {createRouter, create…

深度学习知识点:LSTM

文章目录 1.应用现状2.发展历史3.基本结构4.LSTM和RNN的差异 1.应用现状 长短期记忆神经网络&#xff08;LSTM&#xff09;是一种特殊的循环神经网络(RNN)。原始的RNN在训练中&#xff0c;随着训练时间的加长以及网络层数的增多&#xff0c;很容易出现梯度爆炸或者梯度消失的问…

通过氧化最小化工艺提高SiC MOSFET迁移率的深入分析

标题 Insight Into Mobility Improvement by the Oxidation-Minimizing Process in SiC MOSFETs&#xff08;TED2024&#xff09; 文章的研究内容 文章的研究内容主要围绕氧化最小化工艺&#xff08;oxidation-minimizing process&#xff09;对碳化硅&#xff08;SiC&…

【Unity小技巧】解决Visual Code中文乱码

在Mac下使用VS Code打开代码时&#xff0c;中文注释显示乱码。 解决方法&#xff1a; VS Code&#xff1a;Setting -> Settings -> 搜索“autoGuessEncoding”&#xff0c;然后勾选上即可。 简体中文的Encoding是GB 2312。

maven 下载依赖 jhash:2.1.2 和对应 jar 包

原文地址 前言 25年新的一年&#xff0c;那就先更新一篇技术文章吧&#xff0c;这个是这几天刚遇到的一个有意思的bug&#xff0c;记录分享一下 原因分析 在使用maven加载一个项目的时&#xff0c;发现maven的依赖一直无法解析&#xff0c;更换阿里云镜像和中央仓库都没办法…

回归预测 | MATLAB基于RF-Adaboost多输入单输出回归预测

回归预测 | MATLAB基于RF-Adaboost多输入单输出回归预测 目录 回归预测 | MATLAB基于RF-Adaboost多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB基于RF-Adaboost多输入单输出回归预测。 1.Matlab实现RF-Adaboost随机森林集成学习…

【网络协议】动态路由协议

前言 本文将概述动态路由协议&#xff0c;定义其概念&#xff0c;并了解其与静态路由的区别。同时将讨论动态路由协议相较于静态路由的优势&#xff0c;学习动态路由协议的不同类别以及无类别&#xff08;classless&#xff09;和有类别&#xff08;classful&#xff09;的特性…

基于SSM实现的垃圾分类平台系统功能实现二

一、前言介绍&#xff1a; 1.1 项目摘要 随着城市化进程的加速和居民生活水平的提高&#xff0c;城市生活垃圾的产量急剧增加&#xff0c;给城市环境管理带来了巨大压力。传统的垃圾处理方式&#xff0c;如填埋和焚烧&#xff0c;不仅占用大量土地资源&#xff0c;还可能对环…

如何实现多级缓存?

本文重点说一说在Java应用中&#xff0c;多级缓存如何实现。 多级缓存是比较常见的一种性能优化的手段&#xff0c;一般来说就是本地缓存分布式缓存。 本地缓存一般采用Caffeine和Guava&#xff0c;这两种是性能比较高的本地缓存的框架。他们都提供了缓存的过期、管理等功能。…

美摄科技为企业打造专属PC端视频编辑私有化部署方案

美摄科技&#xff0c;作为视频编辑技术的先行者&#xff0c;凭借其在多媒体处理领域的深厚积累&#xff0c;为企业量身打造了PC端视频编辑私有化部署解决方案&#xff0c;旨在帮助企业构建高效、安全、定制化的视频创作平台&#xff0c;赋能企业内容创新&#xff0c;提升品牌影…

嵌入式C语言:什么是指针?

目录 一、指针的基本概念 1.1. 定义指针 1.2. 赋值给指针 1.3. 解引用指针 1.4. 指针运算 1.5. 空指针 1.6. 函数参数 1.7. 数组和指针 1.8. 示例代码 二、指针在内存中的表示 2.1. 内存地址存储 2.2. 内存模型 2.3. 指针与硬件交互 2.4. 示例代码 三 、指针的重…