31-http原理

31-http原理

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

什么是URL?
	URL即统一资源定位符(Uniform Resource Locator),用来唯一地标识万维网中的某一个文档。URL由协议、主机和端口(默认为80)以及文件名三部分构成。如:

1

什么是超文本传输协议HTTP?
	是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。
HTTP工作原理
请求响应交互模型
在用户点击URL为http://www.oldboy.com/index.html 的链接后,浏览器和Web服务器执行以下动作:
1.浏览器分析超链接中的URL
2.浏览器向DNS请求解析www.oldboy.com的IP地址
3.DNS将解析出的IP地址222.246.129.80返回浏览器
4.浏览器与服务器建立TCP连接
5.浏览器请求文档:GET /index.html
6.服务器给出响应,将文档index.html 发送给浏览器
7.释放TCP连接
8.浏览器显示index.html中的内容

2

HTTP请求方法
请求报文中的方法:
方法(Method)是对所请求对象所进行的操作,也就是一些命令。请求报文中的操作有:
方法(操作)含义方法(操作)含义
GET请求读取一个web页面HEAD请求读取一个web页面的首部
POST附加一个命名资源(如Web页面)PUT请求存储一个web页面
DELETE删除Web页面TRACE用于测试,要求服务器送回收到的请求
CONNECT用于代理服务器OPTION查询特定选项
HTTP响应
响应报文中的状态码
状态码(Status-Code)是响应报文状态行中包含的一个3位数字,指明特定的请求是否被满足,如果没有满足,原因是什么。状态码分为以下五类:
状态码含义例子
1xx通知信息100=服务器正在处理客户端请求
2xx成功200=请求成功
3xx重定向301=页面改变了位置
4xx客户端错误403=禁止的页面;404=页面未找到
5xx服务器错误500=服务器内部错误,503=以后再试
HTTP头部(首部字段或者消息头)
头(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-IIS/6.0
Content-Encoding响应内容是如何被编码的(如gzip)
Content-Language响应页面所使用的自然语言
Content-Length响应以字节计算的页面长度
Content-Type响应页面的MIME类型
Last-Modified响应页面最后被修改的时间和日期,在页面缓存机制中意义重大
Location响应指示客户将请求发送给别处,即重定向到另一个URL
Set-Cookie响应服务器希望客户保存一个Cookie
HTTP访问流程图

3

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.oldboyedu.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 -->    服务端

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

4

HTTP相关术语
PV UV IP
假设公司有一座大厦,大厦有100人,每个人有一台电脑和一部手机,上网都是通过nat转换出口,每个人点击网站2次, 请问对应的pv,uv,ip分别是多少?
SOA松耦合架构
	面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
微服务架构
```sh

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

atomLg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值