你该懂的HTTP协议
- HTTP 是什么
- URL 详解
- HTTP 之请求篇
- HTTP 之响应篇

一、HTTP是什么
1、概述</br>
HTTP 全称是 <em style="color:red">HyperText Transfer Protocal </em>,即:超文本传输协议,从 1990 年开始就在 WWW 上广泛应用,是现今在 WWW 上应用最多的协议,HTTP 是应用层协议,当你上网浏览网页的时候,浏览器和 web 服务器之间就会通过 HTTP 在 Internet 上进行数据的发送和接收。HTTP 是一个基于请求/响应模式的、无状态的协议。即我们通常所说的 <em style="color:red">Request/Response</em>
http 协议簇

2、特点
支持客户端/服务器模式</br>
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP
协议简单,使得HTTP
服务器的程序规模小,因而通信速度很快
灵活:HTTP
允许传输任意类型的数据对象。正在传输的类型由 Content-Type
加以标记
无连接:无连接的含义是限制每次链接只处理一个请求。服务器处理完哭护的请求,并收到客户的应答后,即断开链接,采用这种方式可以节省传输时间
无状态:HTTP
协议是无状态协议。无状态是指协议对于事物处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能会导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快
二、URL详解
1、简介
<em style="color:red">URL(Uniform Resource Locator)</em>是统一资源定位符的简称,有时候也被俗称为网页地址(网址),如同是网络上的门牌,是因特网上标准的资源的地址
2、基本组成
通用的格式:<em style="color:red">schema://host[:port#]/path/…/[?query-string][#anchor]</em>
名称 | 功能 |
---|---|
schema | 访问服务器以获取资源时要使用哪种协议,比如,http,https 和 FTP 等 |
host | HTTP 服务器的 IP 地址或域名 |
port | HTTP 服务器的默认端口是 80,这种情况下端口号可以省略,如果使用了别的端口,必须指明,例如http://www.cnblogs.com:8080 |
path | 访问资源的路径 |
query-string | 发给 http 服务器的数据 |
anchor | 锚 |
举个例子:http://www.mywebsite.com/sj/test/test.aspx?name=sviergn&x=true#stuff 其中
名称 | 功能 |
---|---|
Schema | http |
host | www.mywebsite.com |
path | /js/test/test.aspx |
Query-string | name=sviergn&x=true |
anchor | stuff |
再来张比较直观的图
三、HTTP 之请求篇
HTTP 的请求报文分为三个部分, <em style="color:red">请求行、请求头、请求体</em>
!
1、请求行</br>
请求行(Request line)分为三个部分:请求方法、请求地址和协议版本
请求方法
<em style="color:red">HTTP/1.1</em> 协议中共定义了八种方法(也叫“动作”)来以不同的方式操作指定的资源
方法名 | 功能 |
---|---|
GET | 向指定的资源发出“显示”请求,使用 GET 方法应该只用在读取数据上,而不应该用于产生“副作用”的操作中 |
POST | 指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求文本中。这个请求可能会创建新的资源或者修改现有资源,或两者皆有。 |
PUT | 向指定资源位置上传其最新内容 |
DELETE | 请求服务器删除 Request-URI 所标识的资源 |
OPTIONS | 使服务器传回该资源所支持的所有HTTP请求方法。用*来代替资源名称,向 Web 服务器发送 OPTIONS 请求,可以测试服务器功能是否正常运作 |
HEAD | 与 GET 方法一样,都是向服务器发出指定资源的请求,只不过服务器将不传回资源的本文部分,它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中关于该资源的信息(原信息或称元数据) |
TRACE | 显示服务器收到的请求,主要用于测试或诊断 |
CONNECT | HTTP/1.1 中预留给能够将连接改为通道方式的代理服务器。通常用于 SSL 加密服务器的链接(经由非加密的 HTTP 代理服务器) |
其中,最常见的是 GET 和 POST 方法,如果是 RESful 接口的话一般会用到PUT、DELETE、GET、POST(分别对应增删查改),这里附上一篇有关 REST 的文章 什么是 RES
2、请求头
请求头可用于传递一些附加信息,格式为:键: 值,注意冒号后面有一个空格:

参考的文章
你应该知道的 HTTP 基础知识
http协议-简介