HTTP协议

Posted yinwu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP协议相关的知识,希望对你有一定的参考价值。

1.什么是url?

1.1 URL是统一资源定位符,表示的是一个资源,(图片 文字 视频 音频 等等)
单个资源介绍--图片
那URL的组成部分是由协议, 域名:端口, 路径和文件名

1.2 url组成部分:

http://     www.yinwucheng.com:80            /public/tt.jpeg
协议          主机名称|域名    端口               文件的路径

协议:     http https
域名:     www.yinwucheng.com
端口:     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.抓包分析

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

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

状态码:
    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
    
假设公司有一座大厦,大厦有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(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次
UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次
IP(独立IP):即Internet Protocol,指独立IP数。00:00-24:00内相同IP地址之被计算一次
日活:每天的活跃用户数量
月活:一个月内,总的活跃用户数量。在取数据的时候,一定要注意去重。

pv:  100000000  / 24 / 60 / 60 =  1158/s
uv:  10000000
ip:  1000000

以上是关于HTTP协议的主要内容,如果未能解决你的问题,请参考以下文章

HTTP协议工作原理是啥 HTTP协议工作原理介绍【详解】

HTTP 之 HTTP协议(HTTP协议概述HTTP消息缓存控制相关头部Cookie相关头部)

HTTP协议

Linux-http协议(应用层协议)-http概述-http格式-http版本-http方法-http状态码

大话http协议

Http协议简单解析