http --- Web页面请求的历程(如何根据URL寻找到需要的资源)

HTTP概况:

// 超文本传输协议(HyperText Transfer Protocol,HTTP):是Web的应用层协议,它是Web的核心.
// 客户端和服务器运行在不同的端系统中,通过交换HTTP报文进行会话
// HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式
// HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户传送Web页面的方式

Web术语:

// Web页面(Web page)(也叫文档)是由对象组成.
// 一个对象只是一个文件,诸如:一个HTML文件、一个JPEG图形、一个Java小程序,这些对象可以通过一个URL地址寻找
// 多数Web页面含有一个HTML基本文件以及多个引用对象
// URL的组成:存放对象的主机名和对象的路径名

用户请求一个Web页面:

// 当用户请求一个Web页面时(如:输入url,回车)
// 浏览器向服务器发出对该页面中所包含对象的HTTP请求,服务器收到请求并用包含这些对象的HTTP相应报文进行相应
// HTTP使用TCP作为它的支撑运输协议
// HTTP客户首先发起一个与服务器的TCP连接
// 一旦建立连接,该浏览器和服务器进程就可以通过套接字接口访问TCP
// 客户端的套接字接口是客户进程与TCP连接之间的门
// 客户向它的套接字接口发送HTTP请求并从它的套接字接口接收HTTP响应报文

整体来说:就是当客户键入url时:

  1. DNS根据输入的URL得到对应的ip地址,并获得端口号
  2. 建立TCP连接(3次握手)
  3. 建立成功后,http生成请求报文通过套接字将请求报文托付给TCP
  4. 服务器端处理请求,并发送响应
  5. 浏览器接收到响应后展示对应的资源

TCP的三次握手:

// TCP被称为面向连接的,这是因为在一个应用进程可以开始向另一个应用进程发送数据之前,这两个进程必须先相互"握手"
// syn(synchronize sequence numbers):同步序列号,ack确认号(需要确认的下一个syn),
// 第一次:请求方发出一个syn = i,
// 第二次:服务方收到syn=i, 返回一个ack = i+1, syn =j 的分组
// 第三次:请求方收到ack = i+1, syn =j的分组,发送一个ack=j+1 ,完成握手 

参考《计算机网络-自顶向下方法》(原书第6版)P65~P66

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DOM-6 【兼容】读写样式属性、操作伪元素、运动元素初探

规范 <style type"text/css"></style><script type"text/javascript"></script>读写样式属性 .style是访问不到css样式表的&#xff0c;只能访问到行内/内联的属性&#xff0c;当未设置行内属性时&#xff0c;结果为空字符串 设…

RGBD论文阅读笔记

Single-Image Depth Perception in the Wild 简要记载一下对于利用RGB图像depth图像得到segmentation的论文。 论文名称&#xff1a;Cascaded Feature Network for Semantic Segmentation of RGB-D Images 论文出处 ICCV 2017 Lin 模型结构 数据集 NYUDv2 SUN-RGBD 性能分析 总…

vue组件调用(全局调用和局部调用)

当用vue-cli创建一个项目后, 创建项目的方法: https://www.cnblogs.com/fps2tao/p/9376847.html 编写了组件怎么,在其他组件中调用了? 组件listBox: 路径 src/components/listBox.vue <template><div class"listBox">listBox222</div> </templ…

http --- 路由器缓存与常见的状态码

路由器的缓存: // 当下路由器其主要系统性能指吞吐率、利用率、丢包率、延迟、缓存大小和实现复杂性等. // 当链路上发生拥塞时能够对新进入的数据包进行缓存 // 从而降低丢包率、维持高的链路利用率 // 用于存放路由表的内存,速度快,价格也高状态码: // 为客户端提供了一种理…

DOM-7 【兼容】事件处理函数、冒泡捕获、阻止冒泡默认事件

事件处理函数 绑定事件 绑定事件的处理函数&#xff08;事件本身是存在的&#xff0c;绑定的是相应的反馈&#xff09;事件 事件的反馈 前端交互 &#xff08;前端核心&#xff09; 绑定事件的方式 1. 句柄绑定 默认&#xff08;只能&#xff09;是事件冒泡这种事件流为…

javascript --- XHR(XMLHttpRequet)对象

XHR: // XHR(XMLHttpRequest):为向服务器发送请求和解析服务器响应提供了流畅的接口 // 能够以异步方式从服务器取得更多信息,意味着用户点击后,可以不必刷新页面也能取得新数据 // 换句话说,可以使用XHR对象获取新数据,然后再通过DOM将新数据插入到页面中.XMLHttpRequest对象…

DOM-8 【兼容】冒泡捕获流、事件与事件源对象、事件委托

事件流 1. 含义 描述从页面中接收事件的顺序 2. 分类 IE提出的 事件冒泡流 Event BubblingNetscape提出的 事件捕获流 Event Capturing 3. 阶段 事件捕获阶段 处于目标阶段 事件冒泡阶段 事件捕获先于事件冒泡执行 dom dom0&#xff1a;定义句柄方式&#xff0c;兼…

IIS6.0,Apache低版本,PHP CGI 解析漏洞

IIS6.0解析漏洞 在IIS6.0下存在这样的文件“名字.asp;名字.jpg” 代表了jpg文件可以以asp脚本类型的文件执行。 根据这个解析漏洞我们可以上传这种名字类型的图片&#xff0c;比如 1.asp;xxx.jpg 他会忽略;后边的内容&#xff0c;所以文件相当于1.asp asp一句话木马 <%eval …

UVA 3485 Bridge

题目大意 你的任务是修建一座大桥。桥上等距地摆放着若干个塔&#xff0c;塔高为H&#xff0c;宽度忽略不计。相邻两座塔之间的距离不能超过D。塔之间的绳索形成全等的对称抛物线。桥长度为B&#xff0c;绳索总长为L&#xff0c;如下图所示求建最少的塔时绳索的最下端离地的高度…

javascript --- XMLHttp2级、CORS(跨域资源共享)

FormData: // 为序列化表单以及创建与表单格式相同的数据提供了便利 var data new FromData(); data.append("name", "Nicholas");// 使用FormData标准化数据后,发送到服务器 var xhr createXHR(); xhr.onreadystatechange function () {if ( xhr.read…

ES5-拓展 this指向的总结

每个函数在执行时都有自己的this指向 1. 默认绑定规则&#xff1a; 全局中&#xff0c;this指向window this window函数的独立调用&#xff0c;this默认指向window &#xff08;不要把独立调用理解成window调用&#xff09; // 函数在全局中调用&#xff0c;也就是被window调…

Applet

Applets用于为Web应用程序提供交互功能&#xff0c;这些功能无法单独由HTML提供。它们可以捕获鼠标输入&#xff0c;并且还具有按钮或复选框等控件。响应于用户动作&#xff0c;小应用程序可以改变提供的图形内容。这使得小程序非常适合演示&#xff0c;可视化和教学。 一个app…

国内初创企业选择云计算服务器价格对比

假设我们是一家初创企业&#xff0c;现在要选择第一台服务器。业务还未确定&#xff0c;只知道是互联网业务 要求&#xff1a; 至少2核&#xff0c;否则多线程的软件都跑不了至少4G内存&#xff0c;这样可以运行数据库或者elasticsearch这种比较吃内存的东西。或者说&#xff0…

javascript --- 几个其他的跨域技术(图像Ping、JSONP、Comet)

在CORS(Cross-Origin Resource Sharing,跨域资源共享)出现以前,要实现跨域Ajax通信是很难的. 可以利用DOM中能够执行跨域请求的功能,来实现跨域通信: 浏览器到服务器的单向通信: 此项技术称为图像Ping,利用的是img.src的跨域事件 img.src只能通过侦听load和error事件来确定浏览…

ES5-拓展 箭头函数的this、this的优先级

让内部函数的this指向和父函数的this&#xff0c;可以显示改变this指向&#xff0c;也可以使用箭头函数 箭头代替了function关键字 箭头函数内部没有this指向&#xff0c;箭头函数的this是稳定引用父作用域的。因为它的存在就是要稳定this指向。 适用于普通函数的所有绑定规则…

java 实现压缩单个文件

先来实现一个简单的单文件压缩&#xff0c;主要是为了解一下压缩需要使用到的流。。 效果&#xff1a; 说明&#xff1a;压缩实现使用ZipOutputStream 代码&#xff1a; package com.gx.compress;import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im…

jekins构建触发器详解

jenkins版本&#xff1a;2.89.2 1、触发远程构建 (例如,使用脚本)&#xff1a;通过一个网址的访问来触发构建&#xff0c;这样就不需要登录jenkins系统也能触发构建了。 示例地址&#xff1a; http://localhost:8848/job/FlashRegistration/build??token口令&cause书写构…

http --- 前端的缓存

前端的缓存分为: http缓存 和 浏览器缓存 http缓存: // 当客户端向服务器请求资源时,会先抵达浏览器缓存,如果浏览器有"要请求资源"的副本 // 就会从浏览器缓存中提取而不是从原始服务器中提取这个资源// 常见的http缓存,只能缓存get请求响应的资源,对于其他类型的响…

ES5-拓展 隐式数据类型转换

Boolean转换原则&#xff1a;非假即真 6种虚值 原始值转换为原始值 对象转换为原始值 Date()和new Date() new Date可以不写括号(new方式返回的一定是对象)&#xff0c;返回Date对象Date()返回函数执行&#xff0c;返回时间字符串 引用值转原始值 先找valueOf方法(一般…

Swagger的简单入门【转载】

一、Swagger简介 上一篇文章中我们介绍了Spring Boot对Restful的支持&#xff0c;这篇文章我们继续讨论这个话题&#xff0c;不过&#xff0c;我们这里不再讨论Restful API如何实现&#xff0c;而是讨论Restful API文档的维护问题。 在日常的工作中&#xff0c;我们往往需要给前…