Hi,大家好 。我们日常生活中经常会使用浏览器访问Web站点这个过程中到底发生了什么吗?为什么我们在浏览器地址栏上面输入要访问的URL后就可以访问到Web页面呢?这几乎是面试过程中的高频问题 。
简单来说,当我们在浏览器地址栏上输入要访问的URL后,浏览器会分析出URL上面的域名,然后通过DNS服务器查询出域名映射的IP地址,浏览器根据查询到的IP地址与Web服务器进行通信,而通信的协议就是HTTP协议 , 以下就给大家详细介绍HTTP协议 。
一
HTTP简介
简介HTTP超文本传输协议(HyperText Transfer Protocol)是一种用于分布式、协作式和超媒体信息系统的应用层协议 。HTTP是万维网的数据通信的基础 。是一个属于应用层的面向对象的协议,由于其简捷、快速的方式 , 适用于分布式超媒体信息系统 。它于1990年提出,经过几年的使用与发展 , 得到不断地完善和扩展,目前在WWW中使用的是HTTP/1.0的第六版 。
HTTP协议特点HTTP协议的主要特点可概括如下:
1.支持客户/服务器模式 。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径 。请求方法常用的有GET、HEAD、POST 。每种方法规定 了客户与服务器联系的类型不同 。由于HTTP协议简单 , 使得HTTP服务器的程序规模小,因而通信速度很快 。
3.灵活:HTTP允许传输任意类型的数据对象 。正在传输的类型由Content-Type加以标记 。
4.无连接:无连接的含义是限制每次连接只处理一个请求 。服务器处理完客户的请求,并收到客户的应答后 , 即断开连接 。采用这种方式可以节省传输时间 。
5.无状态:HTTP协议是无状态协议 。无状态是指协议对于事务处理没有记忆能力 。缺少状态意味着如果后续处理需要前面的信息,则它必须重传 , 这样可能导致每次连接传送的数据量增大 。另一方面 , 在服务器不需要先前信息时它的应答就较快 。
作用我们可以把这个HTTP通信过程类比成一个电话对话 。当我们要打电话给某个人 , 首先要知道对方的电话号码,然后进行拨号 。打通电话后我们会进行对话,当然要对话肯定需要共同的语言,如果一个人说国语,而另一个人说英语,那肯定不能进行沟通 。电话号码相当于上面的IP地址,而共同语言相当于HTTP协议 。
工作原理
文章插图
(1) 客户端连接到Web服务器
一个HTTP客户端,通常是浏览器 , 与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接 。例如,http://www.oakcms.cn 。
(2) 发送HTTP请求
通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成 。
(3) 服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源 。服务器将资源复本写到TCP套接字,由客户端读取 。一个响应由状态行、响应头部、空行和响应数据4部分组成 。
(4) 释放连接TCP连接
若connection 模式为close,则服务器主动关闭TCP连接 , 客户端被动关闭连接 , 释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
(5) 客户端浏览器解析HTML内容
客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码 。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集 。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示 。
二
HTTP协议介绍
HTTP协议之URIHTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接 。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息
URL,全称是Uniform Resource Locator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址 。以下面这个URL为例,介绍下普通URL的各部分组成:
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
从上面的URL可以看出,一个完整的URL包括以下几部分:
1.协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议 。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议 。在”HTTP”后面的“//”为分隔符
2.域名部分:该URL的域名部分为“www.aspxfans.com” 。一个URL中,也可以使用IP地址作为域名使用
- 笔记本电脑无线网卡问题排查 笔记本电脑无线网卡
- 电脑前面插孔无声音解决方法 电脑前面插孔没声音
- 解决笔记本电脑无声音问题 联想笔记本电脑没有声音怎么办
- 解决电脑无声的方法和技巧 电脑听不到声音怎么回事
- 抖音视频怎么去掉抖音的水印 抖音图片保存无水印的办法
- 每天喝无糖豆浆减肥吗
- ps图层无法解锁怎么办 ps界面被锁住了的处理方法
- 无需实名认证的游戏推荐 跳过实名认证直接玩
- 电脑一直重启怎么回事 电脑毫无征兆的自动重启修复
- 微信换头像系统维护怎么办 由于系统维护无法修改头像的原因