网站首页 > 资源文章 正文
HTTP协议概述
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准;HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。简单说他就是Web应用的应用层协议,定义浏览器如何向Web服务器发送请求,以及Web服务器如何进行响应。
HTTP是请求与响应的模式,HTTP协议永远都是客户端发起请求,服务器回送响应。无法实现在客户端没有发起请求的时候,服务器主动将消息推送给客户端。
HTTP协议的工作流程
每个万维网的网点都有一个服务器进程,它不断地监听TCP端口80(默认),以便发现是否有客户端(浏览器)向它发出连接请求。一次HTTP操作称为一个事务,其工作过程可分为四步:
- 首先客户机与服务器需要建立连接。
- 建立连接后,客户机发送一个请求给服务器。
- 服务器接到请求后,给予相应的响应信息。
- 客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
HTTP连接模式的分类
目前主要使用的是HTTP/1.0和HTTP/1.1,尤其以HTTP/1.1为主流。我们根据HTTP底层TCP连接策略的不同将HTTP的连接分为两类:
- 持久链接:HTTP/1.1默认使用持久连接
- 非持久链接:客户端与服务器建立TCP连接后,通过该连接发送HTTP请求报文,接收HTTP响应报文,然后断开TCP连接。HTTP/1.0使用非持久连接
RTT(Round Trip Time):是一个时间单位,用于表示从客户发送请求,到收到服务器的相应信息,该过程的用时我们称为一个RTT。
假如我们要浏览一个网页,该网页引用了3个JPEG小图片。现在我们来分别计算HTTP使用不同的链接模式所消耗的时间。
1、非持久单连接:只有一条TCP连接
- 第一步客户端与服务器建立TCP链接,该过程需要一个RTT。
- 第二步客户端请求浏览该页面,并得到服务器的响应,该过程需要一个RTT。
- 第三步浏览器加载某个JPEG小图片,并得到服务器的响应, 但是在加载每个图片之前都需要再建立TCP链接。因此加载一个图片需要两个RTT。这里有三个图片需要加载,所以共需要六个RTT。
由此我们可知使用该模式完成该任务总共需要八个RTT。
2、非持久多连接:通过建立多条并行TCP连接,并行发送HTTP请求和并行接收HTTP响应。
- 第一步客户端与服务器建立TCP链接,该过程需要一个RTT。
- 第二步客户端请求浏览该页面,并得到服务器的响应,该过程需要一个RTT。
- 第三步同时建立三条TCP链接,然后同时请求服务器获取这三张图片。因为是并行的所以这里只需要两个RTT
由此我们可知使用该模式完成该任务总共需要四个RTT。
3、非流水方式持久连接:也称非管道方式持久连接。客户端收到响应报文后,不断开TCP连接,继续请求接下来需要的内容。
- 第一步客户端与服务器建立TCP链接,该过程需要一个RTT。
- 第二步客户端请求浏览该页面,并得到服务器的响应,该过程需要一个RTT。
- 第三步浏览器加载某个JPEG小图片,并得到服务器的响应,由于该模式TCP没有断开,所以直接请求图片,因此加载一个图片需要一个RTT。这里有三个图片需要加载,所以共需要三个RTT。
由此我们可知使用该模式完成该任务总共需要五个RTT。
4、流水方式持久连接:也称管道方式持久连接,客户端在通过持久连接收到前一个响应报文后不断开连接,继续并行请求之后的资源。
由此我们可知使用该模式完成该任务总共需要三个RTT。
HTTP报文格式
1、请求报文之请求行:请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。
HTTP协议的请求方法有:
- GET:请求读取由URL所标识癿信息,是最常见癿方法
- HEAD:请求读取由URL所标识癿信息癿首部
- POST:给服务器添加信息
- OPTION:请求一些选顷癿信息
- PUT:在指明癿URL下存储一个文档
2、HTTP响应报文:HTTP响应由三个部分组成,分别是:状态行、消息报头、响应正文。
状态行:由3部分组成,分别为协议版本、状态码、状态码描述,之间由空格分隔(HTTP/1.1 200 OK)。
HTTP状态码:3位十进制数,利用第一位十进制数字区分5类状态码。
Cookie
Cookie也称为“小型文本文件”,由于HTTP服务器不保存客户的任何信息,被称为无状态协议,因此引入Cookie机制,用于用户跟踪。Cookie就是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 。
Cookie的属性:
- NAME=VALUE:键值对,可以设置要保存Key/Value,注意这里的 NAME 不能和其他属性项的名字一样
- Expires:过期时间,在设置的某个时间点后该 Cookie 就会失效
- Domain:生成该 Cookie 的域名,如 domain="www.baidu.com"
- Path 该:Cookie 是在当前的哪个路径下生成的,如 path=/wp-admin/
- Secure:如果设置了这个属性,那么只会在 SSH 连接时才会回传该 Cookie
- HTTPOnly属性:用于防止客户端脚本通过document.cookie属性访问Cookie,有助于保护Cookie不被跨站脚本攻击窃取或篡改。
cookie的工作机制:当用户第一次访问并登陆一个网站的时候,cookie的设置以及发送会经历以下4个步骤
- 客户端发送一个请求到服务器
- 服务器发送一个HttpResponse响应到客户端,其中包含Set-Cookie的头部。网站在后台数据库中存储、维护Cookie信息包括分配用户ID、每个ID用户在本网站的访问特征等
- 用户浏览器在本地存储、维护和管理Cookie文件,之后向服务器发送请求时,HttpRequest请求中会包含一个Cookie的头部
- 服务器返回响应数据
猜你喜欢
- 2024-10-07 细说HTTP协议及其工作流程(mqtt协议和http协议区别)
- 2024-10-07 关于 HTTP 协议,你了解多少(http协议网址含义)
- 2024-10-07 还不懂 HTTP 协议的吗?一篇文章讲透
- 2024-10-07 HTTP协议和HTTPS协议的区别详解(http协议和https协议的区别详解过程)
- 2024-10-07 蓝易云 - 网络通信协议-HTTP协议详解!
- 2024-10-07 HTTP协议入门的核心知识点总结,全在这里了,图文并茂拿走不谢
- 2024-10-07 介绍一下 HTTP 协议(http协议系列介绍)
- 2024-10-07 浅谈HTTP协议(http协议是目前在www中应用最广的协议)
- 2024-10-07 详解:什么是HTTP/3 和 QUIC 协议(modbus通讯协议功能码详解)
- 2024-10-07 一篇文章搞懂HTTP和HTTPS的的本质区别
你 发表评论:
欢迎- 最近发表
-
- UG10.0UG12.0教程,共63章节,送给那些正在自学UG编程的朋友
- UG产品图档下载,连筋薄板,外形铣、孔铣都要用
- 天正建筑 T30V1.0 下载安装教程(支持CAD2025)
- 教你如何开启UG NX12.0设置保护加密(文件密码)
- UG NX 8.5 安装教程,安装过程就是这么简单
- ug安装教程详细步骤ug怎么免费安装教程ug软件怎样安装步骤
- UG/NX安装失败,如何才能彻底删除(卸载)UG/NX?6步就能解决
- UG8.5 正式版安装方法(ug8.8安装)
- ug12.0版安装教程与安装包免费下载 #ug安装
- China-EU 50 years: Advancing stability and prosperity through partnership
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)