07@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、请求类型
在HTTP请求报文中的方法(Method),是对所请求对象所进行的操作,也就是一些命令。

#请求报文中的操作有:
方法(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找不到主页,权限不足
404找不到页面
500内部错误
502找不到后端主机
503服务器过载
504后端主机超时
200		成功
301
302
304
404		返回不存在的页面
403		没有访问权限
500		服务器端错误
501
4、http 和 https 之间的区别
http:    无证书, 容易被网络DNS劫持
https:   有证书	相对安全
5、http 1.0 和 http 1.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 -->    服务端
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值