欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

http 协议

程序员文章站 2022-07-01 08:38:18
1.什么是url? ​ 2.什么是html? 3.什么是http? 4.url html http 之间的关系? 5.http的工作原理 https://blog.csdn.net/hguisu/article/details/8680808 6.当用户在浏览器输入域名后,会发生哪些操作? dns ......

1.什么是url?

    url表示的是一个资源,(图片 文字  视频 音频 等等.)
    http://fj.xuliangwei.com/public/tt.jpeg

url组成部分:
http://     fj.xuliangwei.com:80            /public/tt.jpeg
 协议        主机名称|域名    端口            文件的路径

协议:     http https
域名:     
端口:     80   443
路径:     /public/tt.jpeg    ---> uri
查询:     key=value

2.什么是html?

    html简称web page,只不过一个完整的html页面可能会包含很多个url的资源。
    (反之: 我们也可以理解一个html文件是由多个不同的url资源拼接而成的。)

3.什么是http?

    http协议就是将用户请求的html页面从一台web服务器传输到客户端浏览器的一种协议。
    web 上进行数据交换的基础。

4.url html http 之间的关系?

一个完整的html页面是由n多个url地址资源组成的,而http协议是用来传输这种html文件的.

5.http的工作原理

6.当用户在浏览器输入域名后,会发生哪些操作? dns tcp http

用户-->app cache --> dns --> tcp  --> http request --> http response  --> tcp 

7.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

8.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

9.# 状态码:

    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                                 后端服务超时

10.额外headers信息?

    user-agent
    referer字段    记录从哪一个页面过来的
    location        web 服务器告诉浏览器,试图访问的对象已经被移到别的位置了

11.ip pv uv 并发 日活 月活?

并发: 10s  500  * 6 * 60 * 24 = 4320000  430w

12.假设公司有一座大厦,大厦有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