您现在的位置:首页 >> 前端 >> 内容

HTTP协议介绍

时间:2017/10/30 15:51:04 点击:

  核心提示:HTT介绍HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.(传输数据)WEB是建立在http协议上的。HTTP发送流程...

HTT介绍

HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.(传输数据)

WEB是建立在http协议上的。

HTTP发送流程
1. 作为发送端的客服端在应用层(http协议)发出一个想看某个Web页面的HTTP请求。
2. 为了传输方便,在传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文)进行分割,并在报文上打上标记号后转发给网络层
3. 在网络层(ip协议),增加作为通信目的的MAC地址后转发非链路层。这样一来,发往网络的通讯请求就准备齐全了
4. 接受端的服务器在链路层接收到数据按往上层,一直到应用层。当传输到应用层,才算真正受到有客户端发送过来的HTTP请求

http报文

什么是http报文:
用于http协议交互的信息被称之为HTT报文。请求(客户端)的HTTP报文叫做请求报文,响应端(服务器端)的叫做响应报文。

HTTP协议规定,请求从客户端发出,最后服务端响应该请求并返回。换句话说,肯定是先从客户端开始建立通信,服务端在没有接受到请求之前不会发送响应。

http报文:
HTTP协议介绍

报文的组成:
HTTP协议介绍

请求行 解析

请求行的请求方式

HTTP协议介绍

Request Headers的请求行

GET/ HTTP/1.1 ——-> 起始行,请求方式get,http协议版本1.1
Host: www.baidu.com
Connection: keep-alive
Cache-Control: max-age=0
…..

Response Headers的请求行

HTTP/1.1 200 OK ———> 起始行,htttp协议版本, 200状态码
Bdpagetype: 1
Bdqid: 0xa57b075100016e7b
Bduserid: 0
Cache-Control: private
….

HTTP首部

HTTP首部字段名和字段值(键/值对)构成的,http的首部字段可以有多个值。

Accept-Language: zh-CN,zh;q=0.8

Request Headers 首部

HTTP协议介绍

Response Headers首部

HTTP协议介绍

首部字段解析: https://en.wikipedia.Z喎?/kf/ware/vc/" target="_blank" class="keylink">vcmcvd2lraS9MaXN0X29mX0hUVFBfaGVhZGVyX2ZpZWxkczwvcD4NCjwvYmxvY2txdW90ZT4NCjxoMyBpZD0="主体部分">主体部分

HTTP报文的主体部分:就是HTTP要传输的内容。
HTTP报文可以承载很多类型的数字数据:图片、视频、HTML文档,软件应用程序、信用卡事务、电子邮箱…..
HTTP协议介绍

HTTP状态码

HTTP协议介绍

202 请求正常处理
204 请求处理成功但是没有资源返回
206 对资源某一部分的请求
301 资源的URL已更新
302 资源的URL已经临时定位到其他位置了,302标准禁止post变为get。但实际使用大家都不遵守
303 资源的URL已经更新,是是否能临时更新URL访问
304 客服端附带条件的请求,资源已经找到,但是未符合条件请求
400 服务器无法理解这个请求
401 改状态码发送请求需要通过HTTP认证
403 不允许访问资源
404 服务器上没有资源
500 服务器内部资源出现故障
503 服务器当前不能处理客户端的请求,一段时间后可能恢复正

HTTP工作原理

HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
以下是 HTTP 请求/响应的步骤:
1. 客户端连接到Web服务器
一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,https://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的语法对其进行格式化,并在浏览器窗口中显示。

例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:
1. 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
2. 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
3. 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
4. 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
5. 释放 TCP连接;
6. 浏览器将该 html 文本并显示内容;  

Tags:HT TT TP P协 
作者:网络 来源:kkxxzx的博客