览器接收url后的行为
打开一个浏览器,在地址栏输入一个网址,按下ENTER键,到看到整个页面,中间经历了哪些事情?
其中红字为HTTP的访问过程,
我们把1-4称为HTTP的请求阶段,把5-7叫响应阶段,1个HTTP请求+1个响应叫做一个HTTP事务.
当加载资源文件标签的时候(img等标签)会再次发送HTTP请求,完成一个HTTP事务,这种事务越少越好
一个完整的URL的组成
URL/URN/URI的区别
URI = URL + URN
- URI: 统一资源标识符,是一个用于标识某一互联网资源名称的字符串。 该种标识允许用户对网络中(一般指万维网)的资源通过特定的协议进行交互操作。
- URL: 统一资源定位符,最常见的形式是 URI,经常指定为非正式的网址。
- URN: 统一资源名称,其目的是通过提供一种途径,用于在特定的命名空间资源的标识,以补充网址。
URL的组成
https://www.baidu.com:80/index.php?tn=monline_3_dg
https
:传输协议www.baidu.com
:域名:80
:端口号/index.php
:请求的路径名称?tn=monline_3_dg
:问号传参及哈希值传输协议 : 用来传输客户端和服务器端交互的信息的
- HTTP协议 : 超文本传输协议
除了传输普通文本以外,还可以传输文本流(音乐,视频)或者进制编码等信息,是目前最常用的WEB传输协议
- HTTPS协议 : 基于SSL(安全套接层)
加密的HTTP传输协议,比HTTP更加安全(涉及支付的网站一般都是基于HTTPS完成)
- FTP : 文件传输协议
一般用来实现资源文件在服务器上的上传和下载
- 域名 :
- 一级域名 :
www.qq.com
- 二级域名 :
sports.qq.com
- 三级域名 :
kbs.sports.qq.com
- 一级域名 :
- 端口号
用来区分一台服务器上不同访问的标识(基于WBE服务管理创建服务的时候可以指定),不同服务之间一般是不能使用相同的端口号的- HTTP =>默认端口号80
- HTTPS =>默认端口号443
- FTP =>默认端口号21
如果当前网站服务,采用的是协议对应的默认端口号管理,那么当前用户输入网址的时候可以不指定端口号,浏览器会默认把用户把默认的端口号传递给服务器
一台服务器上的端口号在:0-65535之间
WEBSTORM预览页面:WS把自己的电脑当做服务器,在服务器上创建一个服务,端口号是63342,自己电脑上的浏览器预览自己电脑上的服务,属于本机服务请求,用localhost(127.0.0.1)本地域名即可http://localhost:63342/201802LESSON/WEEK7/0522DAY1/1.html
服务器上安装一款应用都可能会作为一个服务,占用一个端口号
- 请求路径名称
/path
/pathname
例如:/stu/index.html
一般都是请求当前服务对应的项目目录中,STU文件夹中的INDEX.HTML页面。但是也有特情况,就是当前的URL是被“伪URL重写”的,我们看到的URL请求其实不是真实的请求(例如https://item.jd.com/4679424.html
这个URL就是被重写的,它的真实URL地址很可能是https://item.jd.com/detail.jsp?id=4679424
,其实就是跳转到详情页,通过问号传递不同的产品编号,展示不同的产品详情信息,但是.jsp这种服务器渲染的动态页面不能被搜索引擎收录,不利于页面的SEO,所以我们会把动态页面静态化,这也就用到了URL重写技术)
例如:/stu/info
这种没有任何后缀信息,一般都不是用来请求资源文件的,而是用于AJAX数据请求的接口地址(如果后缀是.json类的,也是同理),但是有一种除外/stu/info/
这种的很可能不是接口地址,而是没有指定请求的资源名称,服务器会请求默认的资源文件,一般都是index.html/default.html…
DHTML:动态页面,泛指当前页面中的内容不是写死的而是动态绑定的,例如.jsp/.php/.aspx…这些页面中的数据都是基于AJAX或者是后台编程语言处理,由服务器端渲染,最后把渲染后的结果返回给客户端呈现的 - 问号传参及哈希值
?xxx=xxx&...#xxx
在HTTP事务中,问号传参是客户端把信息传递给服务器的一种方式(也有可能是跳转到某一个页面,把参数值传递给页面用来标识的)
哈希值一般都跟客户端服务器交互没啥关系,主要用于页面中的锚点定位和HASH路由切换