计算机网络(二)

HTTP学习

上篇已经介绍了HTTP,URL,HTML的由来
现在详细讲讲他们

URL(Uniform Resource Location)

统一资源定位符
用来表示从互联网得到的资源位置和访问这些资源的方法。
而且只要能对资源进行定位,其实系统就可以对资源进行存取,更新,替换,查找其属性。
也可以当成一个全路径的文件名在网络范围的扩展。

URL形式


协议:最常用的就是HTTP协议超文本传送协议,或者文件传送协议ftp
主机:协议和主机之间的://是固定格式,他指出这个万维网文档在世界上的哪一台主机上,也可以当成域名,
端口和路径:有时可以忽略,例如http://www.baidu.com这样就忽略了端口路径

使用HTTP协议的URL

一般形式为
在这里插入图片描述
默认端口号80可忽略,如果再次忽略了路径,则定位到主页
如果不忽略路径名则意味着可以找到从属页面
在这里插入图片描述

HTTP超文本传输协议

是什么:HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档以及服务器怎样把文档传送给浏览器。
在这里插入图片描述

  1. 每个万维网网点都有一个服务器进程用来监听TCP的端口80
  2. 浏览器(万维网客户程序)发出连接请求,建立TCP连接后,浏览器发出浏览某个页面请求
  3. 服务器返回所请求的页面作为响应
  4. TCP连接释放
    这当中的请求和响应的交互必须按照规定格式和规则,这些格式
    规则就是HTTP协议

HTTP特点

  • 因为采用了TCP面向连接作为运输层协议,保证了数据的可靠传输,所以HTTP不必考虑数据在传输过程中被丢弃后又怎样重传。所以HTTP协议本身是无连接的
  • HTTP协议是无状态的,同一客户2次访问同一服务器上的页面,这2次请求没什么不同
    (为了更快地处理大量事务,当然也会采用Cookie技术来实现保持状态功能,例如购物网站的登录状态,下面会详细地讲讲)

HTTP/1.0缺点

在这里插入图片描述
每请求一个页面需要2倍RTT+传输该文档时间,如果该文档又包含很多链接如图片视频等,那么每个链接下载都需要这么多时间
第二点是C/S段建立TCP链接也是需要分配缓存和变量,这种称为非持续连接,导致服务器端负担很重

HTTP/1.1
使用了持续连接:万维网服务器在发送响应后在一段时间内保持这条连接,即还可以继续传输HTTP请求报文和响应报文

持续连接的2种实现方式:(非)流水线方式
非流水线方式:一个响应收到后才能发出下一个请求,这样缺点就是等待响应的这一段时间内TCP连接处于空闲状态浪费服务器资源

HTTP报文结构

分为请求报文和响应报文两类
在这里插入图片描述
请求报文例子
在这里插入图片描述

响应报文例子
在这里插入图片描述

HTTP首部

HTTP请求报文组成
报文首部
报文主体

请求报文首部组成
请求行(方法、URL、HTTP版本)
请求首部字段
通用首部字段
实体首部字段
其他

上表的请求首部字段、通用首部字段、实体首部字段皆归为HTTP首部字段

先来看看为什么要用HTTP首部字段:在客户端与服务器之间以HTTP协议进行通信时,无论是请求还是响应,它都能起到传递额外重要信息的作用

首部字段结构

组成:
首部字段名:字段值
比如 Content-Type:text/html
Keep-Alive:timeout=15,max=100

HTTP/ 1.1 首部字段一览

见图解HTTP95页
有通用首部字段、请求(响应)首部字段、实体首部字段
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

HTTP状态码

what:当客户端向服务器端发送请求时,描述返回的请求结果
有啥:
在这里插入图片描述

200 OK

响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。
使用GET方法----对应请求的资源的实体会作为响应返回;
使用HEAD-------对应请求的资源的实体不会返回

204 No Content

该状态码代表服务器接收的请求已成功处理,但在返回的响应报文
中不含实体的主体部分。
一般在只需要从客户端往服务器发送信息,而对客户端不需要发送
嗨新信息内容的情况下使用。

301 Moved Permanently

永久性重定向。该状态码表示请求的资源已被分配了新的URI, 以
后应使用资源现在所指的URI

400 Bad Request

该状态码表示请求报文中存在语法错误c 当错误发生时,需修改请求
060 的内容后再次发送请求。另外,浏览器会像200 0K 一样对待该状态码。

404 Not Found

该状态码表明服务器上无法找到请求的资源。或者服务器拒绝该请求又不想说明原因

500 Internal Server Error

该状态码表明服务器端在执行请求时发生了错误。也有可能是Web
应用存在的bug 或某些临时的故障。

通信数据转发程序:代理,网关,隧道

HTTP 通信时,除客户端和服务器以外,还有一些用于通信数据转
发的应用程序,例如代理、网关和隧道。它们可以配合服务器工作
这些应用程序和服务器可以将请求转发给通信线路上的下一站服务
器,并且能接收从那台服务器发送的响应再转发给客户端。

代理服务器

又称为万维网高速缓存,会把最近的一些请求和响应暂存在本地磁盘,就不需要按URL的地址去互联网访问该资源
在这里插入图片描述

网关

转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。有时客户端可能都不会察觉,自己的通信目标是一个网关。

代理和网关的区别
代理连接的是两个或者多个使用相同协议的应用程序,而网关连接的则是两个或多个使用不同协议的端点。网关扮演的是“协议转换器”的角色

隧道

建立起一条与其他服务器的通信线路,届时使用SSL
等加密手段
进行通信。隧道的目的是确保客户端能与服务器进行安全的通信。
隧道本身不会去解析HTTP 请求。也就是说, 请求保持原样中转给
之后的服务器。隧道会在通信双方断开连接时结束。

HTTPS

http的缺点

  1. 通信使用明文(不对请求和响应的内容加密)
  2. 不验证通信方的身份,可能通信方会被伪装
  3. 无法证明报文的完整性,可能被篡改

解决

第一点由于HTTP协议没有加密机制,但可以通过SSL(Secure Socket Layer, 安全套接层)或TLS ( Transport Layer
Security, 安全层传输协议)的组合使用
用SSL建立安全通信线路后就可以进行HTTP通信了。

第一点也可以通过对内容进行加密,报文首部不加密,加密的是报文主体


第二点展开来说就是HTTP协议对于是谁的请求都会返回响应,会有很多隐患,可通过证书来验证服务端客户端的真实性
第三点通过MD5、SHA-1等散列值校验的方法,以及用来确认文件的数字签名方法,当然这样MD5、SHA-1还是会被改写

HTTP+加密+认证+完整性保护=HTTPS

在这里插入图片描述
HTTPS其实不是新协议,而是HTTP通信接口部分利用SSL和TLS协议代替而已,通常HTTP直接和TCP通信。当使用SSL时,就先演变成先和SSL通信再由SSL和TCP通信。

SSL:SSL 是独立于HTTP 的协议,所以不光是HTTP 协议,其他运行在应用层的SMTP 和Telnet 等协议均可配合SSL 协议使用。可以说SSL是当今世界上应用最为广泛的网络安全技术。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值