首页 > 其他分享 >Internet和HTTP协议

Internet和HTTP协议

时间:2022-10-10 15:35:09浏览次数:49  
标签:协议 HTTP 请求 服务端 Internet http 连接 资源 客户端

Internet概念

Internet:将不同的计算机网络连接起来,实现不同的计算机网络之间的通信

Socket套接字

socket:允许位于不同主机(或同一主机)上不同进程之间进行通信和数据交换

  • socket套接字可以理解为主机的ip地址+进程的端口号

  • 端口号:用来唯一标识一台主机上的进程

  • ip地址:用来唯一标识一台主机

万维网:WWW(world wide web)

万维网就是一个信息储藏库,通过超链接的方式将存储信息的站点逻辑上连接起来。然后使用统一资源定位符(URI)来唯一标识这些资源。
image

HTTP协议(HyperText Transfer Protocol,超文本传输协议):
  • HTTP协议:主要是用来访问万维网中资源的一个协议。

  • HTTP协议是应用层协议,它传输层使用的是tcp协议,默认使用80端口。

URI:
  • URI: Uniform Resource Identifier 统一资源标识,分为URL 和 URN

  • URL:Uniform Resorce Locator,统一资源定位符,用于描述某服务器某特定资源位置

  • URN:Uniform Resource Naming,统一资源命名

区别:
URN如同一个人的名称,而URL代表一个人的住址。换言之,URN定义某事物的身份,而URL提供查找该事物的方法。URN仅用于命名,而不指定地址

URL组成:

image

通用格式:

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
  • scheme:方案,访问服务器以获取资源时要使用哪种协议,如http、ftp等

  • user:用户,某些方案访问资源时需要的用户名

  • password:密码,用户对应的密码,中间用:分隔

  • Host:主机,资源宿主服务器的主机名或IP地址

  • port:端口,资源宿主服务器正在监听的端口号,很多方案有默认端口号

  • path:路径,服务器资源的本地名,由一个/将其与前面的URL组件分隔

  • params:参数,指定输入的参数,参数为名/值对,多个参数,用;分隔

  • query:查询,传递参数给程序,如数据库,用?分隔,多个查询用&分隔

  • frag:片段,一小片或一部分资源的名字,此组件在客户端使用,用#分隔

实例:

image

http://h5.pdfdo.com/Download/100922070758.pdf?t=254

https://www.zhihu.com/question/32248310/answer/59281731

?数据库中的参数
#文件中的标签,大文件切成若干片段,指定位置添加标签。
HTTP工作机制:

客户端发起请求,服务端回应请求。--- 这个过程称为一次http事务

web资源:一个"Web 页面”通常并不是单个资源,而是一组资源的集合

资源类型:

  • 静态资源:服务器端文件和客户端文件一样
    文件后缀:.html, .txt, .jpg, .js, .css, .mp3, .avi

  • 动态资源:应用程序,服务端将程序的执行结果返回给客户端
    文件后缀:.php, .jsp ,.asp

访问网站获取资源过程:
  • 客户端浏览器通过tcp的三次握手连接到服务器端,

  • 客户端通过http协议发送http请求,

  • 服务端响应客户端的请求返回对应的资源文件。

http连接请求的访问方式
  • 串行连接:每下载一个资源都要进行三次握手和四次挥手的过程。比如一个网页200个资源就要进行200次连接。(效率低下)

  • 并行连接:同时建立多个tcp连接来下载资源(并发资源消耗大)

  • 持久连接:建立连接之后,每个资源下载的时候都不断开连接。

  • 管道:并行连接和持久连接的综合,建立持久连接后同时下载多个资源。

  • 复用连接:交替传输请求报文,请求和响应报文同时互相发送。

http协议版本以及区别
  • 0.9版本:1991年发布,只支持发送get指令,已经淘汰了

  • 1.0版本:1996年发布,增加了其他的一些指令,例如post指令。缺点:效率不高

  • 1.1版本:1997年发布,引入了持久连接技术,以及其他的一些指令(put、delete等)等。

  • 2.0版本:2005年发布,HTTP2.0是SPDY的升级版

http请求处理过程
  1. 建立连接:客户端通过tcp的三次握手和服务端建立连接

  2. 接收请求:服务端接收请求

  3. 处理请求:服务端处理请求(get、post等请求)

  4. 访问资源:服务端从磁盘上找到对应的资源

  5. 构建响应报文:服务端将这些文件资源构建成响应报文

  6. 发送响应报文:服务端发送响应报文给客户端

  7. 记录日志:事务结束后服务端记录对应的日志信息。

http请求处理过程种服务端接收请求报文的IO模型

image

  • 单进程I/O模型:服务端开启一个进程,同一时间只能处理一个请求,多个请求被串行响应

  • 多进程I/O模型:服务端开启多个进程,每个进程响应一个连接请求

  • 复用I/O结构:启动一个进程,通过一个连接复用器将多个用户的请求连接过来,通过优先相应继续处理的请求,实现同时响应N个连接请求

  • 复用的多进程I/O模型:启动M个进程,每个进程响应N个连接请求,同时接收M*N个请求

标签:协议,HTTP,请求,服务端,Internet,http,连接,资源,客户端
From: https://www.cnblogs.com/heyongshen/p/16775884.html

相关文章

  • fix协议介绍5-测试消息
    FIX.5.0SP2MessageTestRequest [type'1']Thetestrequestmessageforcesaheartbeatfromtheopposingapplication.Thetestrequestmessagecheckssequence......
  • fix协议介绍4-心跳
    FIX.5.0SP2MessageHeartbeat [type'0']TheHeartbeatmonitorsthestatusofthecommunicationlinkandidentifieswhenthelastofastringofmessageswas......
  • fix协议介绍6-重发消息
    FIX.5.0SP2MessageResendRequest [type'2']Theresendrequestissentbythereceivingapplicationtoinitiatetheretransmissionofmessages.Thisfunction......
  • fix协议介绍7-序列号重置
    FIX.5.0SP2MessageSequenceReset [type'4']Thesequenceresetmessageisusedbythesendingapplicationtoresettheincomingsequencenumberontheopposi......
  • fix协议介绍8-Reject消息
    FIX.5.0SP2MessageReject [type'3']Therejectmessageshouldbeissuedwhenamessageisreceivedbutcannotbeproperlyprocessedduetoasession-levelr......
  • RFID Gen2协议Session含义
    RFIDGen2协议中Session参数主要为了方便标签盘点。每个标签都包含s0-s3总计4种session,每种session中又各有A,B两种inventoriedflag,这些flag在不同Session之间不互通。换......
  • 记一次win10 python -m http.server 启动后无法访问的经历
    前言最近需要在win10上使用python创建一个http文件服务(默认端口8000),结果执行了python3-mhttp.server-b0.0.0.0后,发现服务跑起来了,但浏览器无法访问http://loc......
  • HttpPost 帮助类
    1publicstaticclassClientHelper2{3publicstaticstringHttpPost(stringurl,stringcontent)4{5stringresul......
  • DFP 数据转发协议应用实例 3.LoRA 中继-使用频道实现
    DFP数据转发协议应用实例 3.LoRA中继-使用频道实现DFP是什么?稳控科技编写的一套数据转发规则,取自“自由转发协议FFP(FreeForwardProtocol)”,或者DFP(DoubleFProt......
  • HttpClient 403 Forbiddenn问题 模拟浏览器请求头
    403Forbiddenn问题模拟浏览器请求头重点配置如下://创建httpGET请求HttpGethttpGet=newHttpGet(uri);httpGet.setHeader("User-Agent","Mozilla/5.0(Windows;U......