HTTP协议采用请求/响应模型——客户端向服务器发送请求报文,服务器以一个状态作为响应。
客户端和服务器进行一次交互的过程主要可以拆解为一下5步:
何为URL?URL全拼Uniform Resource Locator,即统一资源定位符,我们俗称的网址一般就是指它。
组成:
在浏览器内键入某个URL,其内部一般具体会有以下的流程:
请求报文的结构:

GET方法主要用于查询和下载,参数直接显示在地址栏中,不适合传递私密数据,也不适合传递大量数据;
POST方法常用于游戏行业,将数据封装在请求数据中,对数据量没有限制,不会显示在地址栏中;
PUT方法主要用于上传,将资源存放到指定位置,与POST的区别主要体现在是否指定存放位置(POST是服务器自己决定位置);
HEAD
DELETE
OPTIONS
TRACE
CONNECT
POST /user HTTP/1.1 \r\n
请求头部由关键字/值对组成,每行一对。
HOST: 127.0.0.1:8080 \r\n
User-Agent: Mozilla/5.0 \r\n
Accept: text/xml, application/xml, text/html \r\n
Accept-Language: zh-cn,zh;q=0.5 \r\n
Accept-Encoding: gzip,deflate \r\n
Accept-Charset: gb2312,urf-8;q=0.7,*;q=0.7
Content-Type: application/x-www-form-urlencoded;charset=:UTF-8 \r\n
Content-Length: 12
Connection: keep-alive/close
Keep-Alive: 300
请求头之后是一个空行,通知服务器以下不再有其他的请求头的内容。
\r\n
待发送的数据。
GET没有请求数据,POST有。相关的请求头内容有Content-Type和Content-Length。
name=world
请求报文的实体举例:

响应报文的结构:

HTTP/1.1 200 OK
由3位数字组成,第一个数字定义了响应的类别:
1xx消息——表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程;
2xx成功——表示成功接收请求并已完成整个处理过程,常用200;
3xx重定向——需要后续操作才能完成这一请求;
4xx请求错误——客户端的请求有错误,常用404,403;
5xx服务器错误——服务端出现错误,常用500;
取值举例:
200 OK:表示客户端请求成功;
400 Bad Request:表示客户端请求有语法错误,不能被服务器理解;
401 Unauthorized:表示请求未经授权;
403 Forbidden
404 Not Found
用于描述服务器的基本信息以及数据的描述,服务器通过返回这些数据的描述信息,可以通知客户端如何处理它返回的信息。
通过客户端以下不再有其他的响应头
响应的消息体。
响应报文的实体举例:
