美文网首页
HTTP协议简单介绍

HTTP协议简单介绍

作者: 暗物质 | 来源:发表于2018-08-21 11:19 被阅读8次

了解 TCP/IP协议族

  • 计算机与网络设备之间相互通信的规则协议,这些协议集合总称为TCP/IP。例如包括(HTTP、TCP、FTP、IP、UDP、DNS、SNMP、FDDI等等)。

  • TCP/IP分层:

降低耦合,每层之间根据规定好的接口通讯,层次内部能够自由改动、结构清晰。

应用层:向用户提供应用服务,FTP、DNS、HTTP...

传输层:对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。TCP、UDP

网络层:处理网络上流动的数据包(数据包是网络传输的最小数据单位),并选择一条将数据包传送到目标计算机的一条传输路径。

链路层:处理网络连接的硬件部分(操作系统、网卡、光线等)

  • 举例:

用HTTP举例来说,首先客户端再应用层(HTTP协议)发出一个想看某个web页面的HTTP请求。

接着,为了传输方便,在传输层(TCP协议)把从应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号和端口号后转发给网络层。

在网络层(IP协议),增加通信目的地(Mac地址)后转发给链路层。这样一来,发往网络的通信请求就准备完毕了,进行网络请求。

服务器在链路层接收到数据,依次往上层发送,当传输到应用层,才能真正接收到从客户端发送的HTTP请求。

图解TCP/IP分层

发送端在层与层之间传输数据时,每层必定会打上一个该层所属的首部信息。反之,接收端没经过一层时会把对应的首部信息去除。

与HTTP关系密切的协议:IP、TCP和DNS

  • 负责传输的IP协议

IP协议的作用是把各种数据包传送给对方。需要满足各类条件,其中两个重要的条件是IP地址和MAC地址。

IP地址指明节点被分配的地址,MAC地址指网卡的固定地址。IP地址可以和MAC地址配对,IP可变换,MAC地址基本不会更改。

使用ARP协议(Address Resolution Protocol)凭借MAC地址进行通信,ARP是用以解析地址的协议,根据通信方的IP地址就可反查出对应的MAC地址。

在到达通信目标前的中转过程中,计算机和路由器等网络设备只能获取很错略的传输路线,这种机制称为路由选择。

  • 确保可靠性的TCP协议

TCP协议为了更容易传送大数据才把数据分割,且TCP协议能够确认数据最终是否送达到对方。

TCP协议采用三次握手策略,确保数据能准确无误送达目标。

握手过程(使用了TCP的标志-SYN和ACK):发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包确认信息。最后发送端再回传一个带ACK标志的数据包,代表“握手”结束。

除上述三次握手,TCP协议还有其他各种手段来保证通信的可靠性。

  • 负责域名解析的DNS

  • 图解IP协议、TCP协议和DNS服务在使用HTTP协议的通信过程中发挥的作用:

图解

HTTP协议结构

简介

1. 无状态协议
HTTP是不保存状态的协议,即无状态协议。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。

为了实现保持状态功能,引入了cookie技术。有了cookie再用HTTP协议通信,就可以管理状态了。

2. 持久连接节省通信量

在HTTP协议初始版本中,没进行一次HTTP通讯就要断开一次TCP连接。会造成无谓的TCP连接建立和断开,增加通信录的开销。

持久连接:只要任意一端没有明确提出断开连接,则保持TCP连接状态。减少开销,减轻服务器端的负载,web显示速度也相应提高。

3.管线化

从前发送请求后需等待并收到响应,才能发送下一个请求。

管线化后,可同时并行发送多个请求,请求数越多,时间差就越明显。

4.Cookie状态管理

Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。

从服务器端发送的响应报文内的叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。下次客户端往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。服务端发现客户端发送的报文有Cookie后,对比服务器上的记录,最后得到之前的状态信息。

例子:

1.请求报文(没有Cookie信息的状态)

GET /reader/  HTTP/1.1
HostL: hackr.jp

2.响应报文(服务器端生成Cookie)

HTTP/1.1 200 OK
Date: Thu, 12 Jul 2012 07:12:20 GMT
Server: Apache
<Set-Cookie: sid=1234455;path=/;expires=Wed,10-Oct-12 07:12:20 GMT>
Content-Type: text/plain;charset=UTF-8

3.请求报文(自动发送保存着的Cookie)

GET  /image/  HTTP/1.1
Host: Hackr.jp
Cookie: sid= 1234455

请求报文

请求报文是由请求方法、请求URI、协议版本、可选请求首部字段和内容实体构成。

请求报文构成

响应报文

响应报文基本上由协议版本、状态码、解释状态码的原因短语、可选响应首部字段、响应主体构成。

响应报文构成

GET

GET方法用于请求访问已被URI识别的资源。指定的资源经服务器端解析后返回响应内容。

例子:

请求:GET /index.html HTTP/1.1
Host: www.xxx.jp
响应:返回index.html的页面资源

请求:GET /index.html HTTP/1.1
Host: www.xxx.jp
If-Modified-Since:Thu,12 Jul 2012 07:30:00 GMT
响应:仅返回2012年7月12日7点30分以后更新过的index.html页面资源。如果未有内容更新,则以状态码304 Not Modified 作为响应返回

POST

POST方法用来传输实体的主体。

例子:

请求:POST /submit.cgi HTTP/1.1
HOST: www.hackr.jp
Content_Length: 1560(1560字节的数据)

HEAD

HEAD方法和GET方法一样,只是不返回报文主体部分。用于确认URI的有效性及资源更新的日期时间等。

请求: HEAD /index.html HTTP/1.1
Host: www.hackr.jp
响应:返回index.html有关的响应首部

OPTIONS

OPTIONS方法用来查询针对请求URI指定的资源支持的方法。

请求:OPTIONS * HTTP/1.1
Host: www.hackr.jp
响应: HTTP/1.1 200 OK
Allow: GET,POST,HEAD,OPTIONS(返回服务器支持的方法)

PUT 、DELETE

PUT方法用来传输文件。鉴于HTTP/1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,因此一般的web网站不使用该方法。

DELETE 方法用来删除文件。不带验证机制,所以一般web网站不使用DELETE方法。

当配合Web应用程序的验证机制,或遵守REST标准时还是有可能开放使用PUT、DELETE的。

TRACE

追踪路径:TRACE是让Web服务器端将之前的请求通信环回给客户端的方法。

不怎么常用,容易引发XST-跨站追踪攻击,就更不会用到了。

CONNECT

CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL和TLS协议把通信内容加密后经网络隧道传输。

格式 CONNECT 代理服务器名:端口号 HTTP版本

请求: CONNECT proxy.hackr.jp:8080 HTTP/1.1
Host:proxy.hackr.jp
响应:HTTP/1.1 200 OK (之后进入网络隧道)

相关文章

  • HTTP协议简单介绍

    了解 TCP/IP协议族 计算机与网络设备之间相互通信的规则协议,这些协议集合总称为TCP/IP。例如包括(HTT...

  • HTTP协议的简单介绍

    HTTP协议是 “Hyper Text Transfer Protocol”(超文本传输协议)的缩写。HTTP协议...

  • http2.0的时代真的来了...

    开篇HTTP发展的心路历程 先对HTTP协议进行简单介绍 1. HTTP协议 :Hyper Text Transf...

  • RPC(二)

    上篇文章简单的介绍了RPC的原理和传输协议采用HTTP协议与TCP协议的区别。 其中说到HTTP 协议有连接的建立...

  • JSP入门(三)

    在本篇开始之前,首先简单介绍一下HTTP协议,首先我们要了解什么是HTTP协议,那么协议呢就是代表我们的客...

  • http协议介绍

    http协议介绍 http通常称为超文本传输协议。是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守...

  • HTTP协议①介绍

    HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种...

  • HTTP协议介绍

    超文本协议--HTTP B/S(Brower/Server): 浏览器和服务端,维护成本相对较低C/S (Clie...

  • HTTP协议介绍

    1,什么是HTTP协议 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定和规则。 超文本传输协议...

  • HTTP简单介绍

    本篇文章主要是对HTTP进行一个简单的介绍 开篇介绍 HTTP协议是网络的基础协议,也是网页开发者无法绕过的知识点...

网友评论

      本文标题:HTTP协议简单介绍

      本文链接:https://www.haomeiwen.com/subject/hedzbftx.html