五、HTTP(超文本传输协议)基础知识 | 青训营

229 阅读2分钟

一、什么是HTTP协议

HTTP是一个在计算机世界里专门在[两点]之间[传输]文字、图片、音频、视频等[超文本]数据的[约定和规范]。

  • HTTP是不保存状态的协议
  • HTTP协议使用URI定位互联网上的资源

二、HTTP原理

HTTP协议是tcp/ip组中的协议之一,也是互联网上应用最为广泛的协议之一,所有的WWW(万维网)文件都必须遵循这个标准。而设计HTTP协议的最终目的是用来在互联网上传输HTML文件。 image.png

三、HTTP中的五类状态码

image.png

四、HTTP中的常见字段及作用

  • Host:客户端发送请求时,指定服务器的域名
  • Content-length:服务器返回数据时,表明这次数据的长度
  • Connection:客户端要求服务器使用TCP永久链接
  • Content-type:服务器返回数据时,表明返回数据的格式类型
  • Content-encoding:表明服务器返回的数据使用了什么压缩方式

五、HTTP方法

image.png

六、HHTP中Get方法和Post方法的区别

1. Get方法:客户端从服务器获取数据和资源

2. Post方法:和Get方法相反,通过URL向服务器写入数据

七、HTTP报文

1.请求报文
  • 格式

请求行、请求头部、空行和请求数据 image.png

  • 实例

Get方法

GET /562f25980001b1b106000338.jpg HTTP/1.1
Host    img.mukewang.com
User-Agent  Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept  image/webp,image/*,*/*;q=0.8
Referer http://www.imooc.com/
Accept-Encoding gzip, deflate, sdch
Accept-Language zh-CN,zh;q=0.8

Post方法

POST / HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive
    
name=Professional%20Ajax&publisher=Wiley
2.响应报文
  • 格式

image.png

  • 示例
HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8

<html>
      <head></head>
      <body>
            <!--body goes here-->
      </body>
</html>

八、报文首部

1.报文结构
image.png
  • 请求报文首部
image.png
  • 响应报文首部
image.png
2.通用首部字段

image.png

3.请求首部字段

image.png

4.响应首部字段

image.png

5.实体首部字段

image.png

6.为Cookie服务的首部字段

image.png

九、HTTP的特性

1.HTTP协议的优点:

(1)报文形式简单:报文格式header+body,头部信息是Key+value

(2)灵活易扩展:HTTP中各状态方法和字节码没有固定死,而且工作在应用层,下面的每一层都可以随意变化,因此易扩展。

(3)应用广泛跨平台:HTTP可以运用在网页,浏览器,APP中等。

2.HTTP协议的缺点:

(1)无状态信息:无法记录状态信息,完成有关联的操作会异常麻烦

(2)明文传输不安全性

  • 通信使用明文(不加密),内容可能会被窃听
  • 不验证通信方的身份,异常可能遭遇伪装
  • 无法证明报文的完整性,所以有可能已遭篡改