http协议

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
云解析 DNS,旗舰版 1个月
简介: http协议

HTTP协议

超文本传输协议,Hyper Text transfer protocol(发明者:蒂姆.伯纳斯.李)


超文本

包含超链接(link)和各种多媒体元素的文本,这些超文本文件彼此相连,形成网状(web), 因此又被称为网页(web page),这些链接使用URL表示,文本格式一般


为HTML或HTM


HTTP协议版本

   HTTP 0.9

   HTTP 1.0

   HTTP 1.1 当前最流行,更多的请求方法,更精细的缓存控制,支持持久连接

   HTTP 2.0


URI和URL

URI:


uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。

 

URL:


uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。


格式:https://www.baidu.com/?tn=98010089_dg&ch=12



URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。


采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。


URI是以一种抽象的,高层次概念定义统一资源标识,而URL则是具体的资源标识的方式。  


HTTP请求报文的方法

   get  获得请求文件信息的数据内容(下载)

   post 用户提交数据到服务器(上传)

 

   put         明文上传数据(现在很少用)

   head     获取报文首部

   delete     删除某个资源

   options 查询请求资源都支持什么HTTP方法

 


HTTP返回状态码(status-code)

由3位数字组成

200                请求成功

201                上传文件成功

301                永久重定向(redirect)

302,307        临时重定向(redirect)

304                浏览器缓存

403                请求不到首页,没有权限

404                请求的资源在前端查明不存在

405                请求方法不支持

500                服务器的内部错误,程序错误

502                请求的资源前端有记录指向后端数据库,却找不到后端资源

503                服务暂时不可用

504                请求超时


HTTP的连接类型:

keep-alive

短连接:建立一次tcp的连接,发起一次的HTTP请求,结束,tcp断开

长连接:建立一次tcp的连接,发起多次HTTP的请求,结束,tcp断开


用户访问网站携带的参数,以及服务器返回的参数

(1)General概况

Request URL: https://www.baidu.com/            #请求的URL地址

Request Method: GET                    #请求的方法(获取)

Status Code: 200 OK                    #成功状态码

Remote Address: [2408:80f0:410c:1d:0:ff:b07a:39af]:443    #请求的地址(ipv4或ipv6)

Referrer Policy: no-referrer-when-downgrade        #降级不推荐(从https降级到http)


(2)Request Headers:客户端请求头部信息

Accept: text/html                    #请求的类型

Accept-Encoding: gzip, deflate, br    #是否进行压缩

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

Connection: keep-alive                #TCP长连接

cache-control:max-age=0                #缓存时间

Cookie:                             #客户端缓存,用户密码等网站信息

Host:www.baidu.com/                    #请求的域名

Upgrade-Insecure-Requests: 1        #启用升级https访问

User-Agent: Mozilla/5.0             #客户端浏览器


(3)Response Headers:服务器响应头部信息

Cache-Control: private                    #缓存类型非公开(公开:pubLic)

Connection: keep-alive                    #长连接

Content-Encoding: gzip                    #压缩格式gzip

Content-Type: text/html;charset=utf-8    #文档类型

Date: Sat, 14 Mar 2020 08:48:02 GMT        #响应时间

Expires: Sat, 14 Mar 2020 08:47:42 GMT    #失效时间

Server: BWS/1.1                            #网站服务器软件    

status:200                                #状态码


HTTP统计术语:

PV:页面浏览量

UV:独立客户浏览量

IP:独立ip浏览量

例子:50人,每人通过手机和电脑访问同一网站各两次,全部都用公司宽带上网,会产生多少pv、uv、ip?


答案:200    100    1      


HTTP协议原理和流程

(1)用户输入域名->浏览器跳转->app缓存->DNS解析(递归查询|迭代查询)

(2)由浏览器向服务器发起tcp连接(三次握手)

(3)客户端发起HTTP请求:

   请求的方法(获取)    

   请求的主机:域名

   请求的资源类型(html)

   请求的端口(80、443)

   请求携带的参数(类型、压缩、认证等)

(4)服务器的响应:

   服务器的web软件

   响应的文件类型

   是否压缩

   是否长连接

(5)客户端向服务器发起tcp断开(四次握手)


10.用户访问网站流程:

(1)客户端发起HTTP请求,抵达网站的前端防火墙

(2)防火墙收到请求,分析判断是否符合规则,将合规流量通过tcp连接负载均衡器,传递用户HTTP请求

(3)负载均衡器收到请求,根据内容和策略进行下发任务,通过tcp连接web服务器,转发用户的HTTP请求

(4)web服务器收到用户的请求之后,解析请求内容:

   静态请求:web服务器向nfs建立tcp连接,获取图片等静态文件,返回给负载均衡器

   动态请求:由web服务器向后端的缓存或数据库建立tcp连接,将用户的动态请求传递给动态程序进行解析

(5)由数据库->动态程序->缓存->web->负载均衡器->防火墙->用户


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
20天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
【7月更文挑战第31天】在网络数据的海洋中,使用Python的`requests`库构建网络爬虫就像探索未知的航船。HTTP协议指导爬虫与服务器交流,收集信息。HTTP请求包括请求行、头和体,响应则含状态行、头和体。`requests`简化了发送各种HTTP请求的过程。
47 4
|
29天前
|
缓存 网络协议 算法
从零开始掌握HTTP协议:全面详解1.0、1.1和2.0
大家好!我是小米,今天带大家深入探讨互联网基础——HTTP协议。从HTTP/1.0到HTTP/1.1,再到HTTP/2.0,它们是如何发展的,解决了哪些问题,有哪些显着区别?通过这这篇文章,你将全面了解这些协议的变革和优化,掌握关键技术点,提升开发效率。快来一起学习吧!
49 1
|
1天前
|
存储 网络协议 安全
HTTP协议和运行原理
HTTP协议和运行原理
|
15天前
|
域名解析 缓存 网络协议
揭秘DNS协议:从'http://www.example.com'到IP地址的奇幻旅程,你不可不知的互联网幕后英雄!
【8月更文挑战第4天】在互联网的广袤空间里,每台设备都有唯一的IP地址,但记忆这些数字组合并不直观。因此,DNS(域名系统)作为关键桥梁出现,将易记的域名转换为IP地址。DNS协议工作于应用层,支持用户通过域名访问资源。DNS系统包含多级服务器,从根服务器到权威服务器,共同完成域名解析。查询过程始于客户端,经过递归或迭代查询,最终由权威服务器返回IP地址,使浏览器能加载目标网页。
46 12
|
8天前
|
安全 算法 网络协议
【在Linux世界中追寻伟大的One Piece】HTTPS协议原理
【在Linux世界中追寻伟大的One Piece】HTTPS协议原理
23 2
|
11天前
|
网络协议
Web基础与HTTP协议
【8月更文挑战第10天】
23 2
|
11天前
|
API 开发者 微服务
RPC和 HTTP协议
【8月更文挑战第8天】RPC(远程过程调用)使程序能像本地调用般请求远程服务,简化网络通信细节。其优点包括高效的数据传输及严格的类型定义,适合微服务间的高效通信。HTTP(超文本传输协议)则是用于万维网数据传输的通用协议,以文本为基础,易于理解和调试,并被广泛支持。两者各有侧重,RPC偏高速服务通信,HTTP则更适用于多样化的网络场景。选择时需根据具体需求决定。
|
20天前
|
缓存 网络协议 算法
(二)Java网络编程之爆肝HTTP、HTTPS、TLS协议及对称与非对称加密原理!
作为一名程序员,尤其是Java程序员,那必须得了解并掌握HTTP/HTTPS相关知识。因为在如今计算机网络通信中,HTTP协议的作用功不可没,无论是日常上网追剧、冲���、亦或是接口开发、调用等,必然存在HTTP的“影子”在内。尤其对于WEB开发者而言,HTTP几乎是每天会打交道的东西。
45 10
|
21天前
|
数据采集 JSON API
HTTP协议实战演练场:Python requests库助你成为网络数据抓取大师
【7月更文挑战第30天】在网络数据抓取中,Python的`requests`库凭借其简洁的API和强大功能脱颖而出。首先确保已通过`pip install requests`安装库。实战演练包括:发送GET请求获取数据(如`requests.get(url)`),处理JSON响应(利用`.json()`方法解析),添加请求头以绕过反爬虫机制(如设置`User-Agent`),以及发送POST请求提交数据。掌握这些技能的同时,务必遵守法律法规和网站政策。
41 6