1.HTTP简介

全称:Hyper Text Transfer Protocol 中文名:超文本传输协议

超文本:包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。这些超文本文件彼此链接,形成网状(Web),因此又被称为网页(Web Page)。这些链接使用URL表示。最常见的超文本格式是超文本标记语言HTML。

用简单的话说:HTTP去我们的服务器拿取文件,解析URL后展示成页面给我们看

2.什么是URL

URL即统一资源定位符(Uniform Resource Locator),用来唯一地标识万维网中的某一个文档。

URL由协议、主机和端口(默认为80)以及文件名三部分构成

http://    www.baidu.com    :80        /index.html        ?key=value
协议:       域名            端口      文件及其路径     参数=值

http html URL
html页面是由很多个URL组成的,http负责获取并解析,之后展示成页面

3.HTTP访问工作原理

HTTP工作原理

1)浏览器访问DNS服务器解析域名

2)DNS服务器返回域名对应的IP

3)浏览器去访问IP对应的服务器建立TCP连接

4)服务器同意建立链接

5)浏览器请求文件 GET 文件

6)服务器去寻找浏览器请求的文件

7)服务器将文件返回给浏览器,并断开TCP连接

8)浏览器拿到文件,解析后展示成页面

4.基本信息 General

#请求的URL
Request URL: http://10.0.0.7/

#请求的类型
Request Method: GET

#状态码
Status Code: 200 OK

#地址端口
Remote Address: 10.0.0.7:80

#设置请求头部
Referrer Policy: no-referrer-when-downgrade

5.请求头部 Request Header

#文件类型
Accept: image/webp,image/apng,image/*,*/*;q=0.8

#压缩
Accept-Encoding: gzip, deflate

#语言
Accept-Language: zh-CN,zh;q=0.9

#保持连接:长连接
Connetection:keep-alive
    HTTP/1.1版本 #长连接,一次TCP的连接可以发起多次http请求
    HTTP/1.0版本 #短连接,一次TCP的连接只能发起一次http请求

    还有HTTP/2.0和HTTP/3.0

#请求的域名
Host:www.driverzeng.com

#登录信息
cookie: PHPSESSID=afb7d767864ce6a652caa67dde33fcfc; wordpress_test_cookie=WP+Cookie+check; wordpress_logged_in_8cb66d45a3693d7c9673d2f1eaf63f66=admin%7C1565534946%7C0cvYan2unubeCmkeb4dHfIueS0DrnA4cW8plJj9700T%7C37bb38d7b5c62837d6d82dd12eda70830752a1a37cf976d94d4ee560c75f766f; wp-settings-1=libraryContent%3Dbrowse%26editor%3Dtinymce%26hidetb%3D0%26post_dfw%3Doff%26align%3Dcenter%26imgsize%3Dlarge%26mfold%3Do; wp-settings-time-1=1564325346; player_volume=0.0896551724137931; player=no; wp-postpass_8cb66d45a3693d7c9673d2f1eaf63f66=%24P%24Bpclv.Wj97LNy8oqHuxiMGDrNAjbwc1

#主机
Host: 10.0.0.7

#自己查
Upgrade-Insecure-Requests: 1

#浏览器版本
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36

6.响应头部 Response Header

#请求信息的单位
Accept-Ranges: bytes

#长连接
Connection: Keep-Alive

#数据长度
Content-Length: 38772

#文件类型
Content-Type: image/jpeg

#请求时间
Date: Fri, 06 Dec 2019 01:52:48 GMT

#标签(唯一标识符,确认是否有改变)
ETag: "9774-56aca09afaf80"

#长连接超时时间
Keep-Alive: timeout=5, max=96

#最后一次修改时间
Last-Modified: Fri, 27 Apr 2018 01:01:02 GMT

#服务加版本号
Server: Apache/2.4.6 (CentOS) PHP/5.4.16

7.HTTP请求方法

HTTP请求报文中的方法(Method),是对所请求对象所进行的操作,也就是一些命令。请求报文中的操作有:

方法(Method) 含义
GET 请求读取一个Web页面
POST 附加一个命名资(如Web页面)
DELETE 删除Web页面
CONNECT 用于代理服务器
HEAD 请求读取一个Web页面的头部
PUT 请求存储一个Web页面
TRACE 用于测试,要求服务器送回收到的请求
OPTION 查询特定选项

8.状态码

状态码(status-code)是响应报文状态行中包含的一个3位数字,指明特定的请求是否被满足,如果没有满足,原因是什么。状态码分为以下五类:

状态码

状态码 含义
200 成功
301 永久重定向(跳转)
302 临时重定向(跳转)
304 本地缓存
307 内部重定向(跳转)
400 客户端错误
401 认证失败
403 找不到主页,权限不足
404 找不到页面
500 内部错误
502 找不到后端主机
503 服务器过载
504 后端主机超时

9.HTTP请求头部信息

10.HTTP协议总结

1.用输入域名 - > 浏览器跳转 - > 浏览器缓存 - > Hosts文件 - > DNS解析(递归查询|迭代查询)
    客户端向服务端发起查询 - > 递归查询
    服务端向服务端发起查询 - > 迭代查询
2.由浏览器向服务器发起TCP连接(三次握手)
    客户端     -->请求包连接 -syn=1 seq=x           服务端
    服务端     -->响应客户端syn=1 ack=x+1 seq=y     客户端
    客户端     -->建立连接 ack=y+1 seq=x+1          服务端
3.客户端发起http请求:
    1)请求的方法是什么:     GET获取
    2)请求的Host主机是:     www.driverzeng.com
    3)请求的资源是什么:     /index.html
    4)请求的端端口是什么:    默认http是80 https是443
    5)请求携带的参数是什么:   属性(请求类型、压缩、认证、浏览器信息、等等)
    6)请求最后的空行
4.服务端响应的内容是
    1)服务端响应使用WEB服务软件
    2)服务端响应请求文件类型
    3)服务端响应请求的文件是否进行压缩
    4)服务端响应请求的主机是否进行长连接
5.客户端向服务端发起TCP断开(四次挥手)
    客户端     --> 断开请求 fin=1 seq=x          -->    服务端
    服务端     --> 响应断开 fin=1 ack=x+1 seq=y  -->    客户端
    服务端     --> 断开连接 fin=1 ack=x+1 seq=z  -->    客户端
    客户端     --> 确认断开 fin=1 ack=x+1 seq=sj -->    服务端

11.用户访问网站集群架构流程

1.客户端发起http请求,请求会先抵达前端的防火墙
2.防火墙识别用户身份,正常的请求通过内部交换机通过tcp连接后端的负载均衡,传递用户的http请求
3.负载接收到请求,会根据请求的内容进行下发任务,通过tcp连接后端的web,转发发用户的http请求
4.web接收到用户的http请求后,会根据用户请求的内容进行解析,解析分为如下:
    静态请求:web直接返回给负载均衡->防火墙->用户
    动态请求:web向后端的动态程序建立TCP连接,将用户的动态http请求传递至动态程序->由动态程序进行解析
5.动态程序在解析的过程中,如果碰到查询数据库请求,则优先与缓存建立tcp连接,并发起数据查询操作。
6.如果缓存没有对应的数据,动态程序再次向数据库建立tcp连接,并发起查询操作。
7.最后数据由, 数据库->动态程序->缓存->web服务->负载均衡->防火墙->用户。

12.HTTP相关术语

PV:一次访问,一次刷新就是一个 PV

UV:一个设备访问不管多少次都是一个UV

IP:出口ip

假设公司有一座大厦,大厦有100人,每个人有一台电脑和一部手机,上网都是通过nat转换出口,每个人点击网站2次, 请问对应的pv,uv,ip分别是多少?

PV:100 * 2 * 2 = 400

UV:100 * 2 = 200

IP:1

游戏公司 一天 1000万 PV

小说网站 一天 500万 PV

Copyright © 高程程 all right reserved,powered by Gitbook修订于: 2021-05-18 21:14:35

results matching ""

    No results matching ""