传输层的协议我主要学习的是http协议和https协议,https是建立在http协议的基础之上的。
http也就是超文本传输协议(hyper text transfer protocol),是在网上传输web页面的。http协议一般是在浏览器和web服务器之间使用的,用来传输网页的。
包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。这些超文本文件彼此链接,形成网状(Web),因此又被称为网页(Web Page)。这些链接使用URL表示。最常见的超文本格式是超文本标记语言HTML。
几乎所有的浏览器都能够读取http协议,但是不同的浏览器所展示出来的页面可能会有所不同。
URL即统一资源定位符(Uniform Resource Locator),用来唯一地标识万维网中的某一个文档。URL由协议、主机和端口(默认为80)以及文件名三部分构成。如:

是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。
http协议是基础tcp协议进行传输的,默认使用的端口是80端口
所有的web服务器: nginx,tomcat,IIS,python web,go web框架,java web框架都能读懂http协议
也就是在浏览器中输入了www.baidu.com背后发生了什么
更加详细的步骤可以查看我另外一篇博客:08.计算机网络—在浏览器中输入一个网址背后发生了什么

1、物理层面 网线,路由器(光猫)是不是使用正常(ping 网关)
2、如果能ping通网关,但是还是访问不了
2.1、中间运营商问题
2.2、DNS本地域名服务器的问题
2.3、百度服务本身的问题
tcp是面向连接的,在三次握手完成后,就会建立连接,连接又分为长连接(持久连接)和短连接(非持久连接)
http协议:
0.9–》只支持短连接,不支持长连接
1.1—》支持长连接,传输的数据是文本格式
2.0–》比较新,速度更快,传输的数据的数据格式是二进制,并且支持多路复用(提升效率)
现在使用的比较多的HTTP版本是1.1和2.0

首部字段: 就是请求报文的头部封装里需要封装的内容,是可以自己调整的,可增加也是可以减少
抓包查看请求报文中首部字段主要有:

常见的几个:

抓包查看响应报文中首部字段主要有:

常见的几个:


方法(Method)是对所请求对象所进行的操作,也就是一些命令。请求报文中的操作有:GET、POST、DELETE、PUT、HEAD等

其中使用最多的是GET和POST,它们二者的区别有:
1.传参的方式不同
get是通过url来传参的,按照name=value的方式,各个参数之间通过&符号连接。post是通过http请求包的body部分来传参的。
2.安全性不同
因为get通过url来传参,所以它的参数可以在地址栏中看到,这样非常不安全。post是传递的参数不容易被人看到,安全性会更加高
3.传输数据的大小不同
由于URL长度是有限的,所以get传递参数的大小也是有限制的,不能传递很多个参数。但是post是通过request包的body部分传参,大小不受限制。
4.作用不同
get请求通常是用来从服务器上获取资源的,而post是用来向服务器提交数据的。

常见的举例:
301 永久重定向 www.360buy.com—>www.jd.com
302 临时重定向
304 使用缓存里的数据 not modified
400 客户端语法错误
401 用户验证失败,例如要求提交用户名和密码不正确导致认证失败
403 用户禁止访问
404 url找不到,网页不存在
405 方法不被允许
499 client has closed connection --nginx定义状态码 不一定是客户端的问题,有可能是你的服务器处理不过来了[四次握手没完成][客户端点了叉掉页面,但是服务器端还在连接中]
500 Internal Server Error 服务器内部错误,无法完成请求,服务器奔溃了
501 Not Implemented 服务器不支持请求的功能,无法完成请求
502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应[负载均衡器运行正常,但是后端服务器都挂了]
503 Service temporarily Unavailable 服务临时不可用,由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中[控制某个时间段只能访问多少次,访问次数、并发数][服务器不可用,过载了]
504 Gateway Time-out 响应超时,充当网关或代理的服务器,未及时从远端服务器获取请求[后端服务器太慢或者后端服务器防火墙错误]
505 HTTP Version not supported
关于HTTP状态码更加的详细的内容可以查看:HTTP状态码