热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HTTP学习(一)

学习笔记-HTTP笔记目录:https:blog.csdn.netweixin_42717928articledetails114343085昨天下了雨,

学习笔记-HTTP

笔记目录:https://blog.csdn.net/weixin_42717928/article/details/114343085

昨天下了雨,今天刮了风,明天太阳就出来了


  •  简单了解
  • TCP/IP基础
  • URI和URL

一:简单了解

如在百度输入www.baidu.com,回车,就能打开百度的网页

这种通过发送请求获取服务器资源的Web浏览器,可以称为客户端(client)

Web使用HTTP(超文本传输协议)为规范,完成两端之间的运作流程

HTTP于96年5月正式公布,命名HTTP/1.0

97年1月公布HTTP/1.1,是目前主流版本

二:TCP/IP基础

网络是在TCP/IP协议族的基础上运作的,HTTP是它内部的一个子集

TCP/IP是网络相关联的协议集合起来的总称(也有其他说法)

TCP/IP协议族按照分层分为为4层:应用层、传输层、网络层、数据链路层

分层的好处:某个地方有改动,就无需整体改动;各层间接口规划好,每个层次内部设计也能自由改动

应用层:向用户提供应用服务时通信的活动,如:

FTP(文件传输协议)、DNS(域名系统)、HTTP协议

传输层:提供处于网络连接中的两台计算机之间的数据传输

TCP(传输控制协议)、UDP(用户数据协议)

网络层(网络互连层):用来处理在网络上流动的数据包(数据包是网络传输的最小数据单位)

该层规定了通过怎样的传输路线到达对方计算机,并把数据包传送给对方

链路层(数据链路层,网络接口层):用来处理连接网络的硬件部分

流程:

  • 客户端在应用层(HTTP协议),发出一个请求
  • 在传输层(TCP协议)把应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层
  • 在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层
  • 接收端的服务器在链路层接受到数据,按序往上层发送,直到应用层为止
  • 发送端在层与层之间传输数据,每经过一层就打上一个该层所属的首部信息,接收端再一层层的去掉,这种将数据信息包装起来的做法称为封装(HTTP数据-TCP首部-IP首部-以太网首部)

(一)IP协议

IP网际协议位于网络层,,它是一种协议的名称,作用是将数据包传送给对方,其中需要2个条件(IP地址和MAC地址)

IP地址指明节点被分配的地址,MAC地址是指网卡所属的固定地址,它们之间会进行匹配,IP可变换,MAC基本不更改

通信双方在同一个局域网(LAN)的情况很少,通常需要经过多台计算机和网络设备中转才能连接到对方,在中转时,会使用下一站中转设备的MAC地址,需要ARP协议(用于解析地址的协议,根据通信双方的IP地址就能反查出对应的MAC地址)

(2)TCP协议

TCP位于传输层,提供可靠的字节流服务

就是将大块数据分割成以报文段为单位的数据包进行管理

TCP采用了三次握手策略,确保数据送达目标处,握手过程中使用了TCP的标志(flag)-SYN(synchronize)-ACK(acknowledgement)

流程:

  • 发送端发送带SYN标志的数据包给对方
  • 接收端接收后,回传带SYN/ACK标志的数据包,表示传达确认信息
  • 发送端再回传一个带ACK标志的数据包,表示“握手”接收

(3)DNS服务

DNS服务也是应用层的协议,提供域名到IP地址之间的解析服务

计算机可以被赋予IP地址,也可以被赋予主机名和域名,用户通常使用主机名或域名来访问对方的计算机,因为IP可能难记忆

DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务

(如发送端想访问A网页,DNS把A网页对应的IP地址给发送端,发送端再向该地址发起请求)

总结流程:

  • 客户端告诉DNS想请求baidu.com
  • DNS告诉客户端对应的IP地址
  • 客户端向该地址发起请求
  • 在应用层,HTTP生成针对目标Web服务器的HTTP请求报文
  • 在传输层,TCP为了通信方便,将HTTP请求报文分割成报文段
  • 在网络层,IP协议搜索对方的地址,一边中转一边传送(中途可能经过多个路由器)
  • 在另一端的传输层,TCP再将接收的报文段,按序号重组请求报文段
  • 在另一端的应用层,HTTP协议对Web服务器请求的内容处理
  • 请求的处理结果同理回传

三:URI和URL

(1)URL(统一资源定位符),如:http://a.com

表示指定的URI,又分为绝对/相对URL。相对URL是指从浏览器中基本URI处指定的URL

绝对URL形式:

http://user:pass@www.a.jp:80/dir/index.htm?uid=1#ch1

  • http://:协议方案名
  • user:pass:登录信息(认证)(可选项)
  • www.a.jp:服务器地址(也可以是192.168.1.1这类的IPv4地址名,或[0:0:0:0:0:0:0:1]这类的IPv6地址名)
  • 80:端口号(可选项,省略则用默认的端口号)
  • dir/index.htm:带层次的文件路径
  • uid:查询字符串
  • ch1:片段标识符(标记出已获取资源中的子资源)

(2)URI(统一资源标识符,Uniform Resource Identifier)

Uniform:规定统一格式可分别处理多种不同类型的资源,而不用根据上下文环境来识别资源指定的访问方式,后续新增协议方案也容易(如http:或ftp:)

Resource:“可标识的任何东西”

Identifier:标识符

综上所述:URI是由某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称。(如采用HTTP协议,协议方案就是http)




推荐阅读
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • AstridDAO 专访:波卡稳定币黑马 BAI
    加入Pol ... [详细]
author-avatar
skuman2012
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有