http协议

http协议

HTTP协议

1、SSH协议、TCP/IP协议、VRRP协议、HTTP协议、RPC(远程过程调用)协议
2、什么是HTTP协议(超文本传输协议)
	
		HTTP协议和HTTPS协议统称为HTTP协议
	
		HTTP的中文名称为:超文本传输协议
		#超文本:就是文本中包含视频、音频或者图片的文本。
		HTTP协议:是一种按照URL(网址)指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。
		
当我们访问:baidu.com
其实他访问的是:http://www.baidu.com:80/index.html
URL:  http://    www.baidu.com  :80      /index.html
	  #协议       #域名			#端口    #文件及其路径
协议:协议还有很多,ftp、file、ssh、ws
域名:代表我们访问的主机,域名好记
端口:进入我们服务器的门
文件路径:服务器上的资源,实际路径有web服务决定

3、为什么要使用HTTP协议
	HTTP可以使用域名
	HTTP协议是基于TCP/IP协议,主要是封装了TCP/IP协议的应用层,可以使用域名也可对它进行二次封装。
4、HTTP协议的原理
	浏览器和服务器建立连接,传输文件
	HTTP其实是一个无状态的协议。
		

HTTP工作原理

1.首先,当你在浏览器中输入一个网址的时候(https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E6%9B%BE%E8%80%81%E6%B9%BF&rsv_pq=c177c4df0026ba3e&rsv_t=e001VxO8FQ8I6s1o1i0km8IYEX2%2F7PwwkwTB6FC%2FXU9Mmwz24Z4i%2BnYoP0I&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_sug2=0&inputT=1729&rsv_sug4=1728)浏览器会帮你分析,你输入的这个URL

2.其次,浏览器会向DNS服务器请求解析,该URL中的域名www.baidu.com,解析出百度服务器所在的IP地址

3.DNS服务器,会将解析出来的IP地址110.111.112.113并返回给浏览器。

4.浏览器接收到DNS返回的IP地址,立即与该IP所在的服务器建立TCP连接(80端口)。

5.浏览器请求文档,也就是咱们常说的html页面,GET /index.html,并发出HTTP请求报文。

6.服务器给出响应,将请求的index.html文档返回给浏览器,也就是响应HTTP请求的报文。

7.TCP连接响应完之后,释放TCP连接。

8.最后就能显示出,你请求的这个页面了

HTTP请求

Request URL: http://10.0.0.7/index.html					#请求的URL
Request Method: GET									   #请求方式
Status Code: 304 Not Modified							#状态码
Remote Address: 10.0.0.7:80								#远程主机IP和端口
Referrer Policy: no-referrer-when-downgrade				 #控制请求头信息

GET :请求读取一个web页面(读的过程)
POST:上传一个文件(写的过程)
PUT:改的过程
DELETE:删的过程

HTTP/1.0        #短连接
HTTP/1.1        #长连接
HTTP/2.0        #长连接
HTTP/3.0

HTTP响应

1xx :通知信息
2xx请求成功
5xx:服务端状态有问题
	503 :服务端网关错误
4xx	:客户端错误
	403 :禁止的页面
	404 :页面未找到
3xx:重定向

HTTP的状态码

    301—永久移动。被请求的资源已被永久移动位置;
    302—请求的资源现在临时从不同的 URI 响应请求;
    305—使用代理。被请求的资源必须通过指定的代理才能被访问;
    307—临时跳转。被请求的资源在临时从不同的URL响应请求;
    400—错误请求;
    402—需要付款。该状态码是为了将来可能的需求而预留的,用于一些数字货币或者是微支付;
    403—禁止访问。服务器已经理解请求,但是拒绝执行它;
    404—找不到对象。请求失败,资源不存在;
    406—不可接受的。请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体;
    408—请求超时;
    -----------------------
    409—冲突。由于和被请求的资源的当前状态之间存在冲突,请求无法完成;
    410—遗失的。被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址;
    413—响应实体太大。服务器拒绝处理当前请求,请求超过服务器所能处理和允许的最大值。
    417—期望失败。在请求头 Expect 中指定的预期内容无法被服务器满足;
    418—我是一个茶壶。超文本咖啡罐控制协议,但是并没有被实际的HTTP服务器实现;
    420—方法失效。
    422—不可处理的实体。请求格式正确,但是由于含有语义错误,无法响应;
    500—服务器内部错误。服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理;

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主机是:     blog.driverzeng.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 -->    服务端

HTT相关术语

假设公司有一座大厦,大厦有100人,每个人有一台电脑和一部手机,上网都是通过nat转换出口,每个人点击网站2次, 请问对应的pv,uv,ip分别是多少?
 
 PV : 页面独立浏览量
 UV : 独立用户(设备)
 IP : 独立IP
 
那么上面的题:
PV: 100*2*2 = 400
UV: 1002*2 = 200
IP: 1
 
日PV千万量级并不大
posted @ 2021-10-25 17:27  迪迦张  阅读(140)  评论(0编辑  收藏  举报