计算机网络的super super easy 教程 | HTTP

吞吐量:进出的流量

配额:分配给你的固定额度

网络抖动:网络质量不稳定  一会儿好一会儿坏

TCP差错控制体现的是可靠性

三次握手四次断开体现的是面向连接

问题:为什么是三次握手,却是四次断开

带宽:网络的带宽(对于服务器很重要)

网络是非常重要的

内核参数网络相关的调优:

阿里对内核调优的参数:(主要针对tcp三次握手和四次断开的调优 也有arp协议响应的调优)

我们对内核参数的调优:(路由转发和 tcp timewait的复用功能和不使用交换分区)

表示尽可能使用物理内存 尽量不使用交换分区

arp协议的调优参数:

怎么知道这台服务器开放了那些窗口?netstat -aputln

Send-Q:也可以理解为等待着重传的字节数有多少

怎么知道对方的服务器开放了哪些窗口?

扫描 scan    嗅探  渗透  

一个端口一个端口去ping  看看能不能ping通

扫描命令:

netstat:查看本机开放了哪些端口

       yum install net-tools -y

nc:扫描嗅探其他的机器开放了哪些端口

       yum install nc -y

       选项:-z 只扫描监听的端口  不发送任何数据

代表192.168.0.1的80端口一打开

-w:指定超时时间

扫描8080端口 设定超时时间为1s

也可以查看$?去查看 若是没有连接成功 则是1

nmap:探测一个机器或者整个局域网里机器开放了哪些端口 (nc升级版)

       对自动把常用端口都扫描一遍(只扫描常见知名端口)

       (如果有防火墙策略有些端口还不一定能够扫描的到)

       yum install nmap -y

扫描这个网段的所有端口

扫描这个IP机器的所有端口(只有open才代表是打开的)

iftop:查看你的机器和那台机器之间的流量

nethogs:查看某个进程消耗了多少流量   知道哪些进程和外面进行通信

华为很多在东莞

lsof -p 进程号:查看该进程打开的文件加载的库 依赖关系

lsof -i 端口号:查看该端口被哪个进程占用了

top命令查看进程在哪个cpu里面使用 先按f  再按p

Linux分析工具:(大部分都是用python写的)

dstat:查看网络流量(可以看到网速怎么样)

       dstat -am -N ens33,ens37 带宽(-am 看内存等 -N是指定网卡)

       yum install dstat -y

ctrl +c停止

流量   B是代表多少字节 单位还有M K

glances:比top好很多 按q退出 类似于window里面的资源监视器

tcpdump:字符界面的抓包工具(yum install tcpdump -y)

tcpdump是一个Linux里的抓包工具(crtl+c 退出)

-i :指定从哪个接口进来

-nn:以数字的形式显示

-w 文件路径:将抓到的包存到文件里面

当有多个条件的时候用and连接

tcpdump -i ens33 -p tcp and src host 192.168.2.112 and dst port 80

ip地址:

src host

dst host

host  不区分源IP或者目的ip

端口:

src port

dst port

port

协议

arp

icmp

tcp

udp

抓arp协议的包

host代表主机

抓包工具:字符界面的抓包工具

图形界面的抓包工具:科来

wireshark:linux和windows里的图形化的抓包工具

如何知道用户访问过来了?

  1. 日志
  2. netstat
  3. 抓包:tcpdump (抓包目的端口  和 协议)(dump 导出,转储)

超文本传输协议HTTP:

http是什么?做什么用的?

http:超文本传输协议(hyper text transfer protocol)

作用:在网络上传输网页

http协议就是在浏览器和web服务器之间使用,用来传输网页

所有的浏览器都懂HTTP协议

爬虫模块:python,Java里的都能读懂http协议

所有的web服务器:nginx,tomcat,IIS,python web,go web, java web 都能读懂HTTP协议

html是我们编写网页的语言

浏览器可以读懂html语言,将拿到的index.html文件在浏览器里渲染(呈现,展示,显示)

site:站点(一个网站就是一个站点)

https是http的升级版

什么是URL?

 

什么是超文本传输协议HTTP?

http也有请求包和响应包

报文   segment:封装了数据的数据(也可以理解成一种容器)

段:传输层的数据格式

http的工作原理:

(7,8调换一下)

http两种数据类型格式:

  1. 请求包(request)

user-agent:用户代理:就是帮助用户去访问网页的代理工具(其实就是我们的浏览器)

  1. 响应包(response)

Headers:封装的头部信息

7 8应该调换一下位置 最后才四次挥手

tcp:面向连接

三次握手完成就建立链接了

连接:长连接:长时间连接(保持一段时间,然后再进行四次断开)   

              如nginx的65秒

短连接:短时间连接(事情完成就进行四次断开)(频繁的连接断开会降低效率)

http协议版本:

0.9是比较成熟比较早的版本了(只支持短连接 不支持长连接)  

主流版本1.1     (支持长连接,传输的数据是文本格式)

比较新的是2.0  (速度更加快,数据格式是二进制,支持多路复用 可以理解为一个连接处理多个请求 可以提升效率)

HTTP连接方式(传输层的连接    tcp建立的连接):

持久性连接(长连接):1.1 和 2.0版本

非持久性连接(短链接):0.9 和 1.0 版本

HTTP的无状态性:是web服务器端的nginx不知道你的请求是第一次来请求还是第2次,第3次,不区分新的请求还是旧的请求

有状态:服务器手机了客户端的数据,记录了它的信息,通过这些信息可以判断你是老用户还是新用户

session和cookie技术:可以保留用户的信息

session相当于人脸识别系统(用户的信息保存在服务器端 放在数据库或者内存里的一个数据结构里面)

cookie相当于会员卡(让浏览器保存用户信息  信息保存到客户端 放到浏览器的cookie cookie就相当于存放数据的地方)(也就是在请求报文里面加入一个字段)

HTTP报文结构:

请求报文:即从客户端(浏览器)向web服务器发送的请求报文,报文的所有字段都是ASCII码

请求报文里的方法:都是客户端想获取服务器的资源,用来告诉服务器的方法

GET和POST方法的区别?

GET:在URL里可以看到,携带的明文数据 同时携带的信息量有限不能很多

POST:不在URL里显示,是通过表单传输,可以携带更大的信息量

首部字段:就是请求报文的头部封装里需要封装的内容,是可以自己调整的,可增加也可以减少(是可以变化的 如cookie就是可选的首部字段)(首部字段可以理解为携带的信息)

Connection:keep-alive表示长连接有效 closed表示连接已经断开

Host:服务器的IP或者域名

User-Agent:表示使用的什么浏览器

Accept-Language:支持的语言

Accept-Encoding:是否支持压缩和解压缩(提高网络传输的效率)

Accept:表示浏览器可以接收哪些类型的文件

实体主体部分就是放置我们需要的东西(请求报文里一般比较少甚至于没有)

响应报文:即从web服务器到客户机(浏览器)的应答,报文的所有字段都是ASCII码

http中间传输的数据为明文  而https传输的数据是加密的

状态码是服务器里面的操作

常见的状态码:

Nginx版本一般会隐藏,防止有人知道版本查找漏洞,故意攻击

主要记server和状态码

状态码:

304只是单单刷新了一下,页面并没有任何改变,告诉浏览器跟之前的缓存相同(直接用缓存 不用再发数据了)

怎么判断是否被修改呢?

请求报文里面有(是否被修改)

响应报文里面有(上一次修改的时间)

200:是服务器重发的数据(是最新的数据)

403:服务器没有权利访问这个网页(文件的权限问题)

404:网页找不到

405:方法不被允许

cookie字段可以存在响应报文 也可存在请求报文

go语言外包服务器的代码

handler:处理函数    main函数也就是主函数

安装go语言函数:yum install go -y

查看go语言环境的版本

go build server.go :用go语言将server.go编译成一个可执行二进制文件server

./server &:后台执行二进制文件

服务器的形式就是url后面是什么就显示什么

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值