HTTP 的概念、原理、⼯作机制、数据格式

359 阅读2分钟

关于本文

一. 用于记录自己的学习成果
二. 结识一些志同道合的人

以下仅做个人笔记之用

HTTP 的定义

http是⼀种⽹络传输协议,位于 TCP / IP 协议族的最顶层——应⽤层

HTTP

Hypertext Transfer Protocol,超⽂本传输协议,⽤于在⽹络上请求和传输 HTML 内容。
超⽂本(扩展型⽂本),是 HTML 中可以有链向别的⽂本的链接(hyperlink)。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>title</title>
	</head>
	<body>
		<h1>this is a title !</h1>
		<p>this is a paragraph !</p>
	</body>
</html>

HTTP 的⼯作⽅式

通过浏览器和手机App

URL和HTTP报文

URL格式

协议类型://服务器地址[:端⼝号]路径

报文格式

  • 请求报文

  • 响应报文

Request Method 请求⽅法

  • GET

    用来获取资源,不修改服务器数据,无body
  • POST

    增加或修改资源,发送给服务器的内容写在body里面
  • PUT

    修改资源,发送给服务器的内容写在body里面
  • DELETE

    删除资源,无body
  • HEAD

    同GET, 但返回的响应中没有body

Status Code 状态码

对响应结果做出类型化描述

  • 1xx:临时性消息
  • 2xx:成功
  • 3xx:重定向
  • 4xx:客户端错误
  • 5xx:服务器错误

Header

HTTP消息的metadata

Host

目标主机( 在目标服务器上定位子服务器的 )

Content-Type

指定body的类型

  • text/html

    请求web页面是返回响应的类型,body中返回html文本

  • x-www-form-urlencoded

    纯文本表单提交方式

  • multitype/form-data

    二进制文件提交方式

  • application/json , image/jpeg , application/zip ...

    单项内容(文本/非文本),用于 web api 的响应或 put / post 请求

Content-Length

指定body的长度

Transfer: chunked(分块传输编码 Chunked Transfer Encoding)

⽤于当响应发起时,内容⻓度还没能确定的情况下。和 Content-Length 不同时使⽤。⽤途是尽早给 出响应,减少⽤户等待。

Location

指定重定向的目标URL

User-Agent

用户代理,实际发送请求、接受响应的(手机浏览器,手机App)

Range/Accept-Range

按范围取数据

作用:断点续传,多线程下载

其他Headers

  • Accept: 客户端能接受的数据类型
  • Accept-Charset:客户端接受的字符集
  • Accept-Encoding:客户端接受的压缩编码类型
  • Content-Encoding:压缩类型

Cache

作用: 在客户端或中间网络节点缓存数据,降低从服务器取数据的频率,提高网络性能

REST

REST是一个标准,一种规范,遵循REST风格可以使开发的接口通用,便于调用者理解接口的作用。 REST HTTP 即正确使用HTTP:

  1. 使用资源的格式来定义URL
  2. 规范的使用method来定义网络请求操作
  3. 规范的使用status code 来表示响应状态
  4. 其他符合HTTP规范的设计准则