首页 > 其他分享 >网络探索之浏览器解析URL

网络探索之浏览器解析URL

时间:2023-12-16 11:04:11浏览次数:28  
标签:文件 dir1 浏览器 URL 访问 html 服务器 解析 客户端

解析URL

浏览器是一个具备很多功能的计算机,不仅仅是访问网络浏览信息,使用具体哪个功能是通过url的开头进行区分的,这部分也叫做协议

协议类型举例:

1.使用Http协议访问服务器:http

2.使用FTP协议下载上传文件:ftp

3.读取计算机本地文件:file

4.发送邮件:email

浏览器会根据URL来拆分出对应的数据从而生成请求信息得知具体的操作

从书中摘一张图来解释:

b中的url示例代表的意思是:

使用http协议代表访问Web服务器,访问www.lab.glasscom.com这个服务器计算机下面dir1文件的file1.html文件

特殊情况:

1.不填写具体文件名,只列出访问的具体文件夹

http://www.lab.glasscom.com/dir1/

服务器会设置url中文件名缺失的情况下访问的文件。 一般是文件夹下的index.html或者default.html文件。 比如上面示例中的url没有填写file1.html的情况下会访问dir1下面的index.html或者default.html文件

2.只填写服务器域名,没有填写文件夹名称

http://www.lab.glasscom.com/

表示访问这个"/"名字的文件夹下的index.html或者default.html文件。

3.省略末尾/文件夹名称

http://www.lab.glasscom.com

代表访问根目录的index.html或default.html文件

4.填写文件夹名称但是末尾没有/

http://www.lab.glasscom.com/dir1

如果计算器有dir1这个文件名就访问这个文件;如果他是文件夹的话,则还是按照默认处理:访问dir1/index.htrml或者dir1/default.html文件

客户端发送消息到服务器,服务器接受信息并处理之后返回响应消息给客户端

客户端对访问目标进行操作

访问目标也叫URI,是指代具体的文件或程序;操作这个部分是指POST,GET这些方法

url:定位符:通过服务器定位到某个目标文件

uri:标识符:用来标识一个目标资源,既可以通过url定位目标文件也可以通过其他身份标识资源,只要能够找到目标就行

服务器收到请求后也是同样的分析对哪个文件进行操作,之后将结果响应码存放到相应消息返回给客户端

举例:

1.get方法访问服务器指定文件 服务器收到后打开目标文件将文件内容返回给客户端显示

2.post方法 将表单数据提交给服务器的目标程序(此时的目标uri是服务器的应用程序)

服务器的目标程序接受到消息后处理完成将结果告知客户端

请求响应格式说明

服务器和客户端发送的http消息格式如下:

企业微信截图_16600119208710.png


  • 消息头的功能是用来存储额外的信息,比如:日期、客户端支持的数据类型、语言、压缩格式、客户端和服务器的软件名称和版本、数据有效期和最后更新时间等

  • 消息体是真正的数据,但是get方法通过uri就知道操作了不需要携带大量数据所以get方法没有这部分内容;post提交表单涉及大量数据,这些数据就是在这个地方存放的

  • 状态码是数字代表请求的结果用于给程序看的,而状态语是一段文字说明给开发者看的

多次请求

浏览器会在显示文字时搜索相应的标签,当遇到图片相关的标签时,会在屏幕上留出用来显示图片的空间,然后再次访问Web服务器,按照标签中指定的文件名向Web服务器请求获取相应的图片并显示在预留的空间中。

由于一条请求消息只能填写一个url,因此需要获取多个文件需要多次发送对每个文件的请求。

标签:文件,dir1,浏览器,URL,访问,html,服务器,解析,客户端
From: https://blog.51cto.com/u_14689064/8850053

相关文章

  • HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。没有为请求的
    HTTP错误403.14-ForbiddenWeb服务器被配置为不列出此目录的内容。出现以上这个错误可能有如下解决方法:1.将应用程序池设置成V4.02.在配置文件中加上以下几句代码:<system.webServer><modulesrunAllManagedModulesForAllRequests=“true”/><directoryBrowseenabled=“......
  • 如何在项目中全局拦截url的跳转?
    如何在项目中全局拦截url的跳转?一、介绍目的全局拦截url的跳转的目的是为了在项目中统一处理url跳转的逻辑,以达到实现一些特定需求的目标。通过全局拦截url的跳转,可以在用户点击url进行页面跳转时进行统一的处理,例如进行权限验证、页面切换动画等。全局拦截url的跳转可以使项目具备......
  • 前端实现无服务文本文件上传和解析的完整指南
    前言在许多前端应用程序中,用户可能需要上传文本文件并对其进行解析,而无需依赖后端服务。本文将详细介绍如何在前端实现无服务的文本文件上传和解析功能,并提供一个完整的指南以及示例代码。1.文件上传1.1HTML文件上传控件在前端实现文件上传功能,我们首先需要一个文件上传控件......
  • java解析Xml文件
    iFile=getEditor().getEditorInput().getAdapter(IFile.class); Filefile=newFile(iFile.getLocation().toString()); Map<String,String>columnsMap=newHashMap<>(); if(file.exists()){ SAXReaderreader=newSAXReader(); try{......
  • Python多线程编程:竞争问题的解析与应对策略
    本文将深入探讨Python多线程编程中可能出现的竞争问题、问题根源以及解决策略,旨在帮助读者更好地理解、应对并发编程中的挑战。多线程竞争问题的复杂性源自于对共享资源的并发访问和操作。在不同线程间的交叉执行中,共享资源可能因无序访问而导致数据不一致、死锁或饥饿等问题。解决......
  • freemarker模板数据解析1--页面语法直接获取
    freemarker模板数据解析1--页面语法直接获取​ 对后端接口传递过来的Map<String,List>类型数据的展示。对于普通Map<String,String>数据,我们很清楚,直接上代码:·接口提供数据:Map<String,String>map=newHashMap<>();map.put("k1","v1");map.put("k2","v2"......
  • JS获取url参数 比如?id=
    复制下方代码,自定义一个公共js文件function getUrlKey (name) {    return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ''])[1].replace(/\+/g, '%20')) ||......
  • 解析HTTP请求header错误
    运行tomcat时,本以为成功了,结果,突然出现这两个错误 org.apache.coyote.http11.Http11Processor.service解析HTTP请求header错误注意:HTTP请求解析错误的进一步发生将记录在DEBUG级别。  java.lang.IllegalArgumentException:在方法名称中发现无效的字符串,HTTP方法名......
  • 5种容器内指定特定域名解析结果的方式
    本文分享自华为云社区《容器内指定特定域名解析结果的几种方式》,作者:张俭。在本篇文章中,我们将探讨如何在容器内指定特定域名解析结果的几种方式。为了方便演示,首先我们创建一个演示用的Deployment配置文件。apiVersion:apps/v1kind:Deploymentmetadata:name:busybox-d......
  • 【面试必备】Vue 3 常见问题全解析,让你轻松过关!
    谈谈你对Vue的理解?为什么使用Vue进行开发?根据官方说法,Vue是一套用于构建用户界面的渐进式框架。Vue的设计受到了MVVM的启发。Vue的两个核心是数据驱动和组件系统。我为什么使用Vue,有以下几个原因:Vue对于前端初学者比较友好。一个Vue文件的结构和原生HTML保持了高度......