计算机网络重点知识解析(2)

2023-11-05

计算机网络重点知识的总结,接上一篇文章。

HTTP协议

http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
http有许多版本,用的最多的是http1.1,下文中探讨的也是多以1.1为标准。

HTTP协议简介

简单介绍一下HTTP协议的特点:
1丶支持客户服务器模式。
2丶简单快速。
3丶灵活,支持多种数据类型。
4丶无连接,无连接的含义是限制每次连接只处理一个请求,处理完后断开连接,1.1后默认使用长连接,服务器一段时间后断开连接,保证连接特性。
5丶无状态,协议对于事务处理没有记忆能力,后面数据如果需要前面信息,必须重传

先来看下http的请求结构和响应结构:
http请求结构
在这里插入图片描述

打开谷歌浏览器,打开百度首页,在浏览器中f12,在network中找到对应链接,就可以清楚的看到相关的http协议内容:
![百度首页](https://img-blog.csdnimg.cn/20201021161602321.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Nlbl9zZW45Nw==,size_16,color_FFFFFF,t_70#pic_center
这里有一个博客说的挺清楚,大家可以对比参考下,
链接: https://www.cnblogs.com/handsomeBoys/p/4859162.html

HTTP请求响应的步骤

了解了http协议的基本内容,来看下一次http协议的请求到响应的过程:
在这里插入图片描述
有一道比较常见的题目,可以看下:
在这里插入图片描述
先是dns解析,通过域名获得ip地址,通过ip地址,建立tcp连接,tcp连接建立后,客户端向服务器发送http请求,服务器收到后处理请求并返回http报文,浏览器,即客户端,解析并渲染页面,最后连接结束。

HTTP常见状态码

了解下http常见的状态码。
在这里插入图片描述
一般来说
1开头的状态码表示请求已接收,继续处理;2开头的一般表示成功;3开头的一般代表重定向;4开头的代表客户端错误;5开头的表示服务器错误。

GET请求和POST请求

我们再来了解下两种http请求的方式,GET请求和POST请求。
从HTTP报文层面来看,GET请求一般将请求信息,例如请求参数,放在URL上,而POST请求一般放在报文体中,相对来说POST请求更加安全。
从数据层面来看,GET请求一般用于对数据的查询,不改变数据库,符合幂等性和安全性,POST则不符合。
另外,GET请求可以被缓存,被存储,POST请求则不行。

Cookie和Session

Cookie和Session在开发中也是十分常见的。
在这里插入图片描述
在这里插入图片描述
一般来说,服务器有两种方式得到客户端的session信息,一种是使用cookie实现,也是比较常见的方式,jsessionid保存在cookie中,服务器解析到jsessionid,找到客户端对应session。第二种是url回写,让所有的url都带有jsessionid 参数。
我们熟悉的tomcat服务器优先使用cookie,cookie被禁用则使用url回写。
在这里插入图片描述

HTTPS协议

除了http协议,现在htps协议也越来越被广泛应用。
HTTPS协议是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。
简单来说,HTTPS 是 HTTP 的安全版,是使用 SSL/TLS 加密的 HTTP 协议。通过 TLS/SSL 协议的的身份验证、信息加密和完整性校验的功能,从而避免信息窃听、信息篡改和信息劫持的风险。
在这里插入图片描述
简单来说,https协议即是http协议加上了一层ssl层,来保证信息的安全传输。
再来看下https协议和http协议的区别,如下图:
在这里插入图片描述

Socket 简介

最后,我们再来了解下socket
所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口 。
一般通过ip和端口号,来唯一标识一个Socket端口。
在这里插入图片描述
Socket的通信流程:
在这里插入图片描述

总结

到此,计算机网络就基本总结完了,这块知识点比较复杂繁琐,确是编程开发中不可缺少的基础。希望大家可以多花时间学习巩固。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机网络重点知识解析(2) 的相关文章

  • Spring Kafka - 为任何主题的分区消耗最后 N 条消息

    我正在尝试读取请求的卡夫卡消息数 对于非事务性消息 我们将从 endoffset N 对于 M 个分区 开始轮询并收集当前偏移量小于每个分区的结束偏移量的消息 对于幂等 事务消息 我们必须考虑事务标记 重复消息 这意味着偏移量将不连续 在这
  • Logback线程池

    我使用 Logback 进行日志记录 我有一个问题 我将 AsyncAppender 与 ConsoleAppender 结合使用 当应用程序启动时 它会创建具有 logback 线程名称的线程池 所有日志记录工作均由 AsyncAppen
  • 用Java截取网页的屏幕截图[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有一个免费的工具可以读取给定的网页并截取它的屏幕截图 我使用 VirtualFramebuffer 和 Firefox Binary
  • 下载前获取文件大小并计算已下载的文件大小 (http+ruby)

    谁能帮我 get the 之前的文件大小我开始下载 显示多少 已下载 require net http require uri url http www onalllevels com 2009 12 02TheYangShow Squid
  • 如何向 node-http-proxy 响应添加标头

    我需要在第三方服务上解决CORS 所以我想构建一个代理来添加标头 Access Control Allow Origin 为什么这段代码没有添加标题 httpProxy require http proxy var URL https th
  • Appengine - 隐藏文件夹的部署

    为了验证 SSL 证书 我需要将包含一些文件的隐藏文件夹 well known 上传到我的应用程序 我正在使用 eclipse 部署 java 应用程序 但 appengine 上的应用程序未收到这些文件 我猜他们被过滤掉了 我尝试将隐藏文
  • 如何使用 Java2D 创建硬件加速图像?

    我正在尝试创建一个快速图像生成器 它可以执行大量 2d 转换和形状渲染 因此我尝试使用 BufferedImage 然后获取 Graphics2D 对象来执行所有绘图 我现在主要关心的是 make 速度非常快 所以我创建一个像这样的 Buf
  • 如何将 (A OR B) AND C 等表达式展开为 A AND C OR A AND B?

    我努力了Javaluator这帮助我评估了这样的表达式 A OR B AND C 但现在我只想扩展表达式 A OR B AND C to A AND C OR A AND B任何人都可以告诉我如何在 Java 任何 API 中执行此操作或任
  • 是否可以将 BitmapDescriptor 转换为 Bitmap?

    我需要将 BitmapDescriptor 转换为 Bitmap 我可以使用以下代码将位图转换为 BitmapDescriptor BitmapDescriptor bd BitmapDescriptorFactory fromBitmap
  • Java RCP/SWT - Eclipse RCP 中的“Android Toast like”对话框

    有谁知道是否存在某些弹出窗口的实现 例如 Android TOAST 通知是以下内容的一部分迈林公共区 https projects eclipse org projects mylyn commons 要集成它们 请添加Mylyn Com
  • Java 线程 JavaDoc

    我编写了一个只能在特定线程上调用的方法 是否应该将标准注释或注释添加到方法的 javadoc 中来表示这一点 不知道有任何这样的标准注释 Java 并发实践 http www javaconcurrencyinpractice com 在第
  • 自 Java 7 以来 HttpServer 延迟 1 秒

    我们正在使用内部HttpServer项目中的类 用于通过 HTTP 在客户端和服务器之间交换数据 当我们切换到 Java 7 时 我们意识到结果交付存在延迟 我们可以将问题简化为以下示例 Class EchoServer创建上下文 echo
  • ImageIO read() 和 write() 操作后 GIF 图像变得错误

    我有这个代码 它只是读取 GIF 文件 用背景重新绘制它 然后输出到新的 GIF 文件 问题是结果文件变得奇怪 我不知道为什么它的质量变得很差 JPG 文件不会出现此问题 如何修复它 import java awt Color import
  • 如何在 Jersey RESTful Web 服务中放置 cookie?

    我想通过 Jersey API 将 cookie 从 PUT webservice result 放置到 POST webservice 这是我的代码 WebResource service1 client resource http te
  • RecyclerView:禁用焦点变化引起的滚动

    TL DR我有一个RecyclerView of EditTexts 当用户注意力集中时EditText 1并点击EditText 2 我想EditText 2获得焦点 但我不想要ReyclerView滚动 我怎样才能实现这个目标 我正在尝
  • AWS Java SDK 中 DynamoDB v2 的迁移详细信息?

    有没有人对新的命名空间进行了更改 com amazonaws services dynamodbv2 以及 AWS Java SDK 1 4 2 及更高版本 中 DynamoDB 的接口 本地二级指数的发布显然需要根据1 4 2 发行说明
  • java.lang.Object#getClass() 的 Eclipse 外部空注释

    我正在使用 Eclipse Mars 中提供的外部空注释工具 我正在尝试添加外部注释java lang Object getClass 但似乎无法正确签名 我尝试过以下变体 NonNull Class getClass L1java lan
  • 如何指示 yum 安装特定版本的 OpenJDK

    我尝试安装openjdk in the redhat服务器 如何安装指定版本 我要安装的版本是 11 0 4 使用以下命令安装的版本是11 0 6 yum install java 11 openjdk devel 曾与 yum showd
  • 来自 Janino 和 Commons-Compiler 的 Spark java.lang.NoSuchMethodError

    我正在构建一个使用 Spark 进行基于随机森林分类的 应用程序 当尝试运行该程序时 我从该行收到异常 StringIndexerModel labelIndexer new StringIndexer setInputCol label
  • 如何使用属性文件在log4j2中创建多个日志文件?

    我正在使用 property 文件在特定路径中创建日志文件 但我正在使用它创建单个文件 以下是我的属性文件代码 status error dest err name PropertiesConfig property filepath ap

随机推荐

  • 51单片机---流水灯独立按键之控制速度

    文章目录 前言 一 问题 二 代码 前言 对于某些实验室的初级考核内容 以下是代码实例 一 问题 流水灯独立按键之控制速度 用按键控制led的流水灯的流速 要求 LED从左开始 然后左右来回流水 定义三个独立按键 按下按键 改变流速 要求实
  • go 面向对象的处理方式

    go语言特性 Golang语言没有C JAVA一样有面向对象 封装 继承 多态 相关的概念 但是面向对象只是一种编程思想 go借助于struct interface这两个go的数据类型可以实现面向对象的处理 struct是一种包含了数据成员
  • 决议要素_2020年每个网站测试人员的新年决议

    决议要素 您能够根据2019年的决议进行工作吗 我在这里听起来可能很可笑 但是作为Web开发人员 我在2019年的决心是在业余时间跳入Web测试 为什么 因此 我可以从测试人员的角度了解发布周期 我想穿他们的鞋子 从他们的眼神中看到SDLC
  • iframe视频加载完成前添加等待效果

    如图 在响应结果回来之前 保持转圈效果 代码 v loading 2 判断是否响应成功
  • intelliJ IDEA 编写邮箱注册功能报错 AddressException

    之前在myeclipse里面成功过一次 今天用intellij IDEA 来做新的项目 需要实现邮箱注册功能 写好后发现一直报AddressException的错误 网上查资料大多数说没有引入mail jar包 但查看库里有包 弄了一下午一
  • 网络安全初学者工具安装:Kali,Windows xp虚拟机,pikachu靶场,burpsuite安装配置,phpstudy安装(学习笔记)

    摘要 在互联网发展的时代背景下 网络安全成为了越来越不可忽视的重要领域 为此 各国都采取了维护网络安全的举措 对于网络安全人才的需求不断增大 我国作为世界上最多使用计算机人口的国家 对于网络安全人才更是供不应求 近年来 我国开始大力扶持网络
  • 组合预测模型

    组合预测模型 EMD GRU GRU时间序列预测对比 Matlab程序 目录 组合预测模型 EMD GRU GRU时间序列预测对比 Matlab程序 预测结果 基本介绍 程序设计 参考资料 预测结果
  • React+umi+ts+Ant Design前端框架搭建详解

    Ant Design是一个由Alibaba开发的优秀的UI库 它提供了很多易于使用和定制的高质量组件和样式 但是 React和Ant Design都不是完整的应用程序框架 因此需要其他工具和库来帮助我们构建前端应用 这些工具和库包括 Rea
  • jdk1.8的Future特性简介及使用场景

    文章目录 Future简介 什么是Future Future的使用场景 Future接口内部的常用方法 Future的常见用法 一 基础用法 重写Callable接口的call方法 放到异步线程的 submit方法中执行 代码实例 二 进阶
  • UEFI 之 Capsule Update (固件更新)

    概要 什么是UEFI Capsule Update呢 Capsule 顾名思义 是 胶囊 的意思 所以UEFI Capsule Update可以理解为胶囊式固件更新 UEFI规范定义了Firmware Management Protocol
  • 【华为OD机试真题 JS】靠谱的车

    标题 靠谱的车 时间限制 1秒 内存限制 262144K 语言限制 不限 程序员小明打了一辆出租车去上班 出于职业敏感 他注意到这辆出租车的计费表有点问题 总是偏大 出租车司机解释说他不喜欢数字4 所以改装了计费表 任何数字位置遇到数字4就
  • [Scala]001-初识

    Scala 发音 sk l 取自于 Scalable 可伸缩 可扩展的 Language简写 01 基本概念 1 多范式 多种编程方法 目前有四种程序设计方法 面向过程 面向对象 函数式 泛型 编程范式 programming paradi
  • latexit使用教程

    必备条件 下载MacTex mpkg zip并安装 写好test bib文件和test tex文件
  • Flutter一天一控件之ListTile(列表的实现)

    ListTile简介 Flutter中的ListTile控件是一种常用的列表项控件 它可以用于显示列表中的每一个项 通常包含标题 副标题 图标等内容 ListTile控件的外观和行为类似于Android中的ListView中的列表项 一个简
  • 基于相干解调法和基于相位比较法的2DPSK数字通信系统 MATLAB Simulink仿真

    1 课程设计目的 通过课程设计 巩固已经学过的通信原理课程中有关数字调制系统的知识 加深对相关知识的理解和应用 学会应用Matlab Simulink工具对通信系统进行仿真和调试 设计与实现的过程中充分利用图书馆和网络资源 提高发现问题和自
  • linux虚拟机中和主机三种网络连接方式的区别

    在介绍网络模式之前 关于网络的几个简单命令的使用 ifup eth0 启动网卡eth0 ifdown eth0 关闭网卡eth0 etc network interfaces 网络配置文件 etc init d networking 网络服
  • 软件实训之从调研到设计,产品设计的从0到1

    软件实训之从调研到设计 产品设计的从0到1 内容关键词 调研 设计 产品 课程 软件项目实训 授课老师 张森鹏 新浪ID sunlifestyle 中城投丝路 720科技 知识来源 网络资源汇总整理 张森鹏讲课视频汇总整理 在互联网产品开发
  • 滴滴社招三面(已拿offer)

    一面 项目 基础技术 算法都有 项目部分 1 业务流程 2 具体负责的部分 3 工作职责 4 碰到的问题 以及怎么解决的 每个问题展开说 技术部分 1 JVM内存模型 具体细节 结合实际说每个空间的作用 2 哪些垃圾回收算法 各个垃圾回收器
  • 如何给家人购买保险

    一 保险的本质 保险是为了防范 分散风险 保险的本质是杠杆 是风险对冲 和风险转移工具 杠杆 用低成本的投入 获得风险发生时 高额的索赔 买保险就是买一份协议 一纸合同 二 保险的分类 保险主要有两大类 分别是社会保险和商业保险 社会保险主
  • 计算机网络重点知识解析(2)

    计算机网络重点知识的总结 接上一篇文章 文章目录 HTTP协议 HTTP协议简介 HTTP请求响应的步骤 HTTP常见状态码 GET请求和POST请求 Cookie和Session HTTPS协议 Socket 简介 总结 HTTP协议 h