架构之HTTP

HTTP

一、http协议详情

1.什么是http

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

HTTP协议简单的说,将用户请求的页面从服务器传输到客户的浏览器,浏览器进行解析,解析以后变成一个我们人类可以理解的方便观看的页面

2.什么是超文本

包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。
超文本文件(Hypertext)就是指具有超链接功能的文件,它可以将文件中已经定义好的关键字(Keyword),经过鼠标的点取(Click),便可以得到该关键字的相关解释

3.什么是URL

统一资源定位符
当我们访问:baidu.com
其实他访问的是:http://www.baidu.com:80/index.html

URL:  http://    www.baidu.com  :80      /index.html
	  #协议       #域名			#端口    #文件及其路径
协议:协议还有很多,ftp、file、ssh、ws
域名:代表我们访问的主机,域名好记
端口:进入我们服务器的门
文件路径:服务器上的资源,实际路径有web服务决定

html文件->包含各种各样的元素(URL链接)->形成WebPage简称web页面
URL HTML HTTP 之间的关系
一个完整的HTML页面是由很多个URL地址资源组成的,而HTTP协议是来传输和解析HTML页面的

二、HTTP工作原理

1.基本信息

Request URL: http://192.168.15.7/bg.jpg					URL 
Request Method: GET										请求类型
Status Code: 200 OK										请求状态
Remote Address: 192.168.15.7:80							访问后端主机和端口
Referrer Policy: strict-origin-when-cross-origin

Accept: text/html,ap                        访问的文本类型
Accept-Encoding: gzip, deflate				指定文本压缩方法
Accept-Language: zh-CN,zh;q=0.9				指定语言
Cache-Control: no-cache						缓存
Connection: keep-alive
Host: www.abc.com							网址
Pragma: no-cache				
Upgrade-Insecure-Requests: 1				升级
User-Agent: Mozilla/5.0 (Win				浏览器agent


Accept-Ranges: bytes
Connection: Keep-Alive
Content-Length: 2633							资源大小
Content-Type: text/html; charset=UTF-8			返回的类型
Date: Sun, 25 Apr 2021 08:03:40 GMT				时间
ETag: "a49-56b5ce607fe00"						
Keep-Alive: timeout=5, max=100
Last-Modified: Fri, 04 May 2018 08:13:44 GMT	
Server: Apache/2.4.6 (CentOS) PHP/5.4.16		服务器Server端

2.请求类型

方法(Method) 含义
GET 请求读取一个Web页面
POST 附加一个命名资源(如Web页面)
DELETE 删除Web页面
CONNECT 用于代理服务器
HEAD 请求读取一个Web页面的头部
PUT 请求存储一个Web页面
TRACE 用于测试,要求服务器送回收到的请求
OPTION 查询特定选项
GET  :请求数据
POST :写数据
PUT  : 修改数据
DELETE:删除数据
#以上四种最为常用

POST请求比GET请求要更安全

3.HTTP请求状态码

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

4.http与https之间的区别

http:无证书,容易被网络DNS劫持。
https:有证书,相对安全。

5.http1.0与http1.1

http 1.0 : 短链接
http 1.1 : 长链接


http1.0:短连接,一次TCP连接,仅能发起一次请求
http1.1:长连接,一次TCP连接,可以多次请求
http2.0:  HTTPS
http3.0

6.常用的web服务器

Apache、Nginx、Tomcat

7、http名词

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

pv		100人 * 2设备 * 2次 = 400 pv
uv		100人 * 2设备 = 200 uv
ip		100人 2设备 2次  1 nat    1 ip

面试题:商家公司的IP、PV、UV是怎么统计的
1.nginx日志,分析筛选
2.第三方统计工具:腾讯移动分析、百度统计、piwik

面试题:你们上家公司PV是多少
小说网站  1分钟请求 5000   平均日pv = 720万   
教育网站  1分钟请求 10000  平均日pv = 1440万

在线人数,日活跃,月活跃

8.静态请求和动态请求

 #静态请求:
   web直接返回给负载均衡->防火墙->用户
 
 
 #动态请求:
    web向后端的动态程序建立TCP连接,将用户的动态http请求传递至动态程序->由动态程序进行解析

三、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)请求的端端口是什么:    默认http是80 https是443
    4)请求的资源是什么:     /index.html
    5)请求携带的参数是什么:   属性(请求类型、压缩、认证、浏览器信息、等等)
    6)请求最后的空行
4.服务端响应的内容是
    1)服务端响应使用WEB服务软件
    2)服务端响应请求文件类型
    3)服务端响应请求的文件是否进行压缩
    4)服务端响应请求的主机是否进行长连接
    5)服务端将数据放回给浏览器
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 -->    服务端

posted @ 2023-05-17 20:24  秋洛尘  阅读(53)  评论(0)    收藏  举报