1.什么是url
URL统一资源定位符,表示一个资源(图片,文字,视频,音频等)
URL组成部分:
例如:http:// fj.xuliangwei.com:80 /public/tt.jpeg(协议,主机名|域名,端口,文件的路径)
协议:http,HTTPS
域名:xuliangwei.com
端口 : 80 443
路径:/public/tt.jpeg---uri
查询:key=value
2.什么是HTML
HTML简称web page,只不过一个完整的HTML页面可能会包含很多个URL的资源。(反之 :我们也可以理解一个HTML文件是由多个不同的URL资源拼接而成。)
3.什么是http
http:超文本传输协议,http协议就是将用户请求的HTML页面从一台web服务器传输到客户端浏览器的一种协议(web上进行数据交换的基础)
4.URL,HTML,HTTP之间 的关系
一个完整的HTML页面是由N多个URL地址资源组成的,而HTTP协议是用来传输这种HTML文件的。
5.HTTP的工作原理
1 ) 地址解析
2)封装HTTP请求数据包
3)封装成TCP包,建立TCP连接(TCP的三次握手)
4)客户机发送请求命令
5)服务器响应
6)服务器关闭TCP连接
6.当用户在浏览器输入域名后,会发生哪些操作? dns tcp http
用户-->app cache --> dns --> tcp --> http request --> http response --> tcp
(1)浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
(2)解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
(3)浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
(4)服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
(5)释放 TCP连接;
(6)浏览器将该 html 文本并显示内容;
7.抓包分析
8.HTTP请求和响应
(1)http请求Headers
Request URL: http://10.0.0.7/ (请求的域名)
Request Method: GET (请求的方法 获取)
Status Code: 200 OK (状态码 200)
Remote Address: 10.0.0.7:80 (请求的真实IP地址+端口)
Referrer Policy: no-referrer-when-downgrade ((TTPS页面引入HTTP资源)时不发送Referrer信息)
--------------------------------------------------------------------
Accept: text/html,application/xhtml+xml ( 接受资源类型)
Accept-Encoding: gzip, deflate ( 压缩方式)
Accept-Language: zh-CN,zh;q=0.9 ( 使用语言)
Cache-Control: no-cache (缓存控制)
Connection: keep-alive (保持连接, 长连接)
Host: 10.0.0.7 ( 请求的域名)
Pragma: no-cache (请求的参数 , no-cache 没有缓存)
Upgrade-Insecure-Requests: 1 ( 在http和https之间起的一个过渡作用)
User-Agent: Mozilla/5.0 (请求的设备)
请求的方法
GET 获取服务器的资源 看朋友圈
POST 提交数据至服务器 发朋友圈
DELETE 删朋友圈
什么是长连接,什么是短连接.
短连接 表示的是 http1.0协议时代, 一次连接一次请求,效率较低.
长连接 表示的是 http1.1协议时代, 一次连接,多次请求,效率较高.
http2.0 http3.0
https://http2.akamai.com/demo/http2-lab.html
(2)http响应的Headers
Connection: Keep-Alive (保持连接,长链接)
Content-Length: 115 ( 响应内容的长度)
Content-Type: text/html;charset=utf-8 (响应内容的类型)
Date: Thu, 12 Sep 2019 02:12:38 GMT (响应的日期 GMT+8小时=北京时间)
Keep-Alive: timeout=5, max=100 (长连接超时时间5s,最大100s)
Server: Apache/2.4.6 (CentOS) PHP/5.4.16 (服务器使用的web软件 php java)
(3)状态码:
200 ok 正常
301 redirect 跳转 (永久)
302 redirect 跳转 (临时)
304 Not Modified 代表浏览器缓存
401 Authorization Required 验证失败
403 Forbidden 1.权限不足 2.找不到首页
404 Not Found 服务器上没有你想要的的资源
500 服务器错误 ( 可能会碰到 代码 )
502 Bad Gateway 找不到后端服务 nginx --> php
503 非常繁忙,负载过重,导致无法及时响应用户的请求
504 后端服务超时
9.额外headers信息?
user-agent
Referer字段 记录从哪一个页面过来的
Location WEB 服务器告诉浏览器,试图访问的对象已经被移到别的位置了
10.ip pv uv 并发 日活 月活?
ip:是指独立用户/独立访客
pv:即Page View, 即页面浏览量,用户每1次对网站中的每个网页访问均被记录1次。用户对同一页面的多次访问,访问量累计。
uv:指一天内访问某站点的人数,以cookie/客户端为依据
并发:并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量
日活:日活的概念即一天之内打开某产品的用户数(去重),也就是说一个人打开100次,即计算为1个日活,但是100个人,每人只开1次,也计算为100个日活。
月活:月活的概念和日活类似,但是统计周期扩大为一个月,也就是在一个月的时间内,打开某产品的用户数(去重)。也就是说一个月里面你每天都打开,也只算1个月活,但是100个人,分别在一个月内的不同时间打开产品,就会计算为100个月活。
并发: 10s 500 * 6 * 60 * 24 = 4320000 430w
假设公司有一座大厦,大厦有100人,每个人有一台电脑和一部手机,上网都是通过NAT转换,每个人刷新网站10次,请问对应的 pv,uv,ip,并发 分别是多少。
ip: 1个 NAT
pv: 100 *2 * 10 = 2000
uv: 100 *2 = 200
并发: 单位时间内(3s 5s 10s) 能够支持多少 请求 200
3ms 5000 3s 单位时间内(10s) 能否支持最大的请求 5000
pv: 100000000 / 24 / 60 / 60 = 1158/s
uv: 10000000
ip: 1000000