Web基础入门-http协议

HTTP协议

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

什么是超文本?

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

  • html文件 ->包含各种各样的元素(URL链接)->形成WebPage简称web页面(说白了 就是远程将服务器上的内容下载传输到浏览器中 将内容展示在浏览器中)

什么是URL?

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

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

什么是超文本传输协议

是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。

http工作原理

## 当我们在浏览器中输入:http://wodeyumengouwo.com/index 后发生了以下内容
1.浏览器请求DNS服务器
    - 本地DNS(local DNS) 优先级比远程DNS高
        如果本地DNS中有wodeyumengouwo.com的域名解析则将本地DNS指定的IP地址返回给浏览器
    - DNS服务器
        找13个根域:
            .com
            .cn
            .org
            .edu
            .xyz
            .net
            .gov
             ...
        递归查询
            1.在对应的根域里找到对应的域名
            wodeyumengouwo.com
            2.根据域名前的www主机名找到这个主机对应的A记录 也就是IP地址
            wodeyumengouwo.com --> A记录:111.231.7.51
        迭代查询
            服务器查找
2.DNS将域名解析成IP地址(111.231.7.51)返回给浏览器
3.浏览器与该IP地址的80端口(nginx)建立TCP/IP连接
    - 连接过程俗称 三次握手
4.浏览器请求文档 GET/index.html,并发出HTTP请求报文
5.服务端给出响应,将请求的index.html文档返回给浏览器,也就是响应HTTP请求
6.断开TCP/IP连接
    - 断开连接过程俗称 四次挥手
7.浏览器展示web页面(超文本传输协议,将html页面下载到浏览器中)

请求DNS

image-20230904192238800

DNS回复

image-20230904200020371

  • 请求头部

image-20230907202715405

  • 响应头部

image-20230907202836389

  • 请求头部信息

image-20230907203510733

  • 响应头部信息

image-20230907203843131

  • 网站代码

image-20230907203030531

HTTP状态码

200:页面访问成功

301:永久重定向(网页跳转) :无论你做出什么更改 都跳转到你指定的网页
302:临时重定向(网页跳转) :当你关闭nginx时 无法访问
# 重定向:当你输入www.wodeyumengouwo.com时是默认的80端口 重定向会帮你跳转到https:// 也就是443端口
304:浏览器缓存
307:内部重定向(内部网页跳转)

400:请求错误 客户端错误  Bad request 需要去排查客户端的报错
401:网站上的认证失败
403:权限不足(站点目录权限问题 Selinux没关)
404:找不到页面(站点目录出问题)

500:服务器内部错误(代码问题,服务器的问题)
502:Bad Gateway,后端服务报错(查看哪台服务器上的日志出现502,就检查该服务器后端的服务)
503:服务器过载,访问评率过快
504:后端服务超时(查看哪台服务器上的日志出现504,就检查该服务器后端的服务)

Http 响应方法

状态码 含义 例子
1xx 通知信息 100 = 服务器正在处理客户请求
2xx 成功 200 = 请求成功(OK)
3xx 重定向 301 = 页面改变了位置
4xx 客户错误 403 = 禁止的页面;404 = 页面未找到
5xx 服务器错误 500 = 服务器内部错误;503 = 稍后再尝试

头部信息

头(header) 类型 说明
User-Agent 请求 关于浏览器和它平台的信息,如Mozilla5.0
Accept 请求 客户能处理的页面的类型,如text/html
Accept-Charset 请求 客户可以接受的字符集,如Unicode-1-1
Accept-Encoding 请求 客户能处理的页面编码方法,如gzip
Accept-Language 请求 客户能处理的自然语言,如en(英语),zh-cn(简体中文)
Host 请求 服务器的DNS名称。从URL中提取出来,必需。
Referer 请求 用户从该URL代表的页面出发访问当前请求的页面
Cookie 请求 将以前设置的Cookie送回服务器器,可用来作为会话信息
Date 双向 消息被发送时的日期和时间
Server 响应 关于服务器的信息,如Microsoft-lS/6.0
Content-Encoding 响应 内容是如何被编码的(如gzip)
Content-Language 响应 页面所使用的自然语言
Content-Length 响应 以字节计算的页面长度
Content-Type 响应 页面的MIME类型
Last-Modified 响应 页面最后被修改的时间和日期,在页面缓存机制中意义重大
Location 响应 指示客户将请求发送给别处,即重定向到另一个URL
Set-Cookie 响应 服务器希望客户保存一个Cookie

PV UV IP 解读

pv:页面独立浏览量(一条日志,一个请求)
UV:独立设备
IP:独立IP

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

SOA 松耦合架构

面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

# 解读
将不同的服务进行拆分,再通过接口跟契约联系起来

# 例子
一个电商公司,他的网站页面功能会有很多
    注册
    登录
    首页
    详情页
    购物车
    价格标签
    留言
    客服
    支付中心
    物流
    仓储信息
    订单相信
    图片