超文本传输协议HTTP


HTTP


超文本传输协议(HTTP,HyperText Transfer Protocol) 互联网上应用最为广泛的一种应用层协议。万维网的文档传输都是基于这个标准。HTTP使用了面向连接的TCP作为运输层协议,所以不考虑数据在途中的丢弃和重传。但HTTP协议本身是无连接的,所以它在通信前不需要先建立HTTP连接。我们通过下图这一通信来了解HTTP的工作过程。



1. 浏览器分析URL

2. 浏览器向DNS请求解析URL: www.tsinghua.edu.cn 的IP地址

3. 浏览器获得DNS解析出的IP地址 166.111.4.100

4. 浏览器与服务器(IP:166.111.4.100 端口:80)建立TCP连接

5. 浏览器发出GET命令: GET /chn/yxsz/index.htm

6. 服务器响应请求,发回文件index.htm 到浏览器

7. 释放TCP连接

8. 浏览器显示 index.htm 文本内容


建立TCP连接需要三次握手,客户端HTTP请求报文在发出TCP第三次握手时一并发出,服务器响应报文收到请求后把请求文档发给客户端。期间,经过了两个往返时间RTT。因为 HTTP 1.0版本是非持续性连接,所以每一次请求都要建立TCP连接,这无疑是给服务器造成很大负担。所以 HTTP 1.1 协议使用了持续连接,即服务器在发送响应后仍然在一段时间内保持这条TCP连接,避免频繁的建立连接。同时,HTTP/1.1 还支持流水线通信方式,即客户端可以发出连续的请求,服务器也可以发出连续的响应。


HTTP报文


HTTP的两类报文:HTTP报文使用ASCII码,各字段长度可变

1. 请求报文

比如前文提到的 www.tsinghua.edu.cn 的访问

GET (空格) /chn/yxsz/index.htm (空格) HTTP/1.1

Host: www.tsinghua.edu.cn

Connection: close (告知服务器发送完响应可以断开连接)

Accept - Language: cn (告知服务器用户希望优先得到中文文档)



2. 响应报文


短语:短语是给人看的,浏览器和服务器不理会。



Cookie


HTTP是无状态的,也就是说你每一次访问,他都以为是第一次访问。这样的话,我们淘宝都买不了东西咯,所以HTTP提出了Cookie来标识我们,把我们的访问信息保存在其数据库。

Cookie是这样的,当你访问某服务器时,服务器生成唯一的识别码,并在响应HTTP报文添加字段名为 Set - cookie 的首部行 : Set - cookie :12345678  。你收到这个响应,取出里面的Cookie 识别码,保存在本地浏览器。而服务器根据识别码这个索引在数据库生成一个项目,你所有对服务器的操作都保存在该项目下。

为了让服务器知道是你,你后续发出的HTTP请求都添加已保存在浏览器的Cookie首部行   Cookie :12345678 。服务器通过这个唯一的Cookie来验证是不是你。


HTTPS


HTTP 协议通常承载于 TCP 协议之上,有时也承载于 TLS 或 SSL 协议层之上,这个时候,就成了我们常说的 HTTPS

    

HTTP的端口号为 80,HTTPS 的端口号为 443

与HTTP对比,HTTPS 两端使用了安全套接字加密了数据。使数据在网络中可以安全的传输。


代理服务器


代理服务器(proxy server)就是一个服务器,它被称为万维网高速缓存(Web cache)。顾名思义,它的工作就是缓解服务器的压力,它将最近的一些请求和响应保存在自己的磁盘,当有人访问时,发现有过一样的请求,它就返回已存的响应。避免频繁的访问远方的服务器,这样就缓解了压力。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值