ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

web基础入门-HTTP协议

2022-05-28 18:00:31  阅读:198  来源: 互联网

标签:web HTTP 浏览器 入门 服务器 服务端 请求


web基础入门-http协议

目录

1.HTTP协议

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

2.URL

	URL是统一资源占位符,它的组成由协议、主机(域名):端口、文件名组成
	#  http:// class.driverzeng.com:80 /15648000575258.html
	#  协议      主机(域名):端口         站点目录下的文件名(这也被称为URI)

3.HTTP及架构请求访问的流程

# 用户在浏览器输入一个网址后
1.浏览器想本地DNS(local DNS)发起域名解析请求,如果本地DNS(/etc/hosts)文件中不存在
2.浏览器向DNS根域服务器发送请求,解析域名
3.DNS进行递归查询和迭代查询:
	递归查询:客户端向服务端发起查询
	迭代查询:服务端向服务端发起查询
将查询到的A记录下的IP返回给浏览器
4.浏览器和该IP所在的服务器的端口建立TCP/IP连接
	防火墙的规则不允许你的IP地址访问该服务器的端口,则会拒绝连接,报错返回给用户
	防火墙的规则允许你的IP地址访问该服务器的端口,则建立TCP/IP连接(三次握手)
				     syn(建立连接信号)
		客户端------------------------------------>服务端
		         syn+ack(返回收到建立连接的请求)
		客户端<-----------------------------------服务端
			 ack(返回我知道你收到建立连接的请求了)
		客户端----------------------------------->服务端

5.向服务端的web服务发起http请求(负载均衡)
	请求头部信息
		1.请求的方式
		2.请求的HOST主机
		3.请求的资源
		4.请求的端口
		5.请求携带的参数
		6.请求最后的空行
6.将请求根据调度算法下发给后端的web服务器
7.读取web服务器上开启web服务的配置文件,找到站点目录
8.找到站点目录下的对应的代码文件
	根据用户发送不同的请求返回不同的结果
		静态请求:Web服务器将静态请求下发到共享储存服务器上,找到对应的静态资源返回给用户
		动态请求:
			1.将请求发送给后端代码,处理
			2.先找数据库的缓存(Redis,memcache)
			3.如果缓存中有相对应的数据,则返回给用户
			4.如果缓存中没有数据,则找后端数据库
			5.从数据库中取出数据后,先存入缓存一份,在返回结果给用户
9.返回对应的状态码和响应头部信息给浏览器
10断开连接(四次挥手)

11.浏览器展示网站页面

4.分析浏览器中请求响应信息

##  General
# 请求的URL
Request URL: https://www.baidu.com/
# 请求的方式
Request Method: GET
# 状态码
Status Code: 200 OK
# 远端地址
Remote Address: 36.152.44.96:443
# referrer规则(从哪里跳转到该网站)
Referrer Policy: unsafe-url
## 响应头部信息
# 响应信息的单位
Accept-Ranges:bytes
# 连接的方式(长链接)
Connection: keep-alive
# 响应主体的长度
Content-Length:2633
# 响应主体的类型
Content-Type: text/html;charset=utf-8
# 日期
Date: Sat, 28 May 2022 07:57:49 GMT
# 标签
Expires: Sat, 28 May 2022 07:57:48 GMT
# 上一次修改时间
Last-Modified: Fri, 04 May 2018 08:13:44 GMT
# 服务端信息
Server: nginx
## 请求头部信息
# 允许请求的主体类型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
# 压缩
Accept-Encoding: gzip, deflate, br
# 允许的语言
Accept-Language: zh,zh-CN;q=0.9
# 缓存
Cache-Control: no-cache
# 连接方式
Connection: keep-alive
# 缓存
Pragma: no-cache
# 浏览器向服务端发送的成功信号
Upgrade-Insecure-Requests: 1
# 客户端信息
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36

5.HTTP请求方法

GET:读取一个页面
POST:明文提交数据,读取页面
DELETE:调用后端接口删除功能的页面
PUT:调用后端接口储存,上传功能页面

CONNECT:代理服务器
HEAD:读取web页面的头部信息
TRACE:测试服务器请求
OPTION:查询特定选项

6.HTTP状态码

200:页面访问成功

301:永久重定向(跳转)
302:临时重定向
304:浏览器缓存
307:内部重定向

400:客户端错误(bad request)
401:认证失败
403:权限不足
404:找不到页面

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

7.简单理解CDN

	CDN:分布式静态缓存服务器,就是将静态资源放入该服务器中,当用户请求为静态请求时,不用去后端服务器,提升了网站访问速度,也减少后端服务器的压力

8.HTTP相关术语

PV:独立页面浏览量(一个日志,一个请求)
UV:独立设备
IP:独立的IP地址
	计算方式(设PV为1的情况下) 例:
		假设公司有一座大厦,大厦有100人,每个人有一台电脑和一部手机,上网都是通过nat转换出口,每个人点击网站2次, 请 问对应的pv,uv,ip分别是多少?
	
	PV:100 * 2 * 2
	UV:100 * 2
	IP:1

标签:web,HTTP,浏览器,入门,服务器,服务端,请求
来源: https://www.cnblogs.com/zlyj/p/16321464.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有