一、概述
- 网络请求的基础
- HTTP请求方式和报文解析
- Cookie 和 Session的理解与使用
- HTTP Cache缓存机制
- 封装网络请求
- TCP 和 Socket
二、HTTP请求方式
HTTP提供了七中请求方式:GET、、POST、DELETE、PUT、HEAD、TRACE、OPTIONS,POST,DELETE、PUT、GET分别对应资源的增、删、改、查,也是使用最多的请求方式;
-
GET
- GET请求报文和服务器的响应报文
- GET /sn/index.php?sn=123&n=asa HTTP/1.1 Accept: */*
Accept-Language: zh-cn host: localhost Content-Type:
application/x-www-form-urlencoded Content-Length: 12
Connection:close - 服务器响应报文
HTTP/1.1 200 OK
Content-Type: text/php
Content-Length: 1024
上述请求的资源是sn/index.php文件,GET请求是将请求参数放在URL之后,第一个参数之前使用“?“,之后的参数格式为:参数名=参数值,参数名之间使用”&“连接,如:sn/index.php?sn=123&n=asa
-
post
-
POST请求通常是使用来提交HTML的表单,表单中的数据传输到服务器,由服务器对这些数据处理,请求和响应的报文如下:
-
POST /sn/index.php HTTP/1.1
Accept: /
Accept-Language: zh-cn
host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: 12
Connection:closesn=123&n=asa
在http头后边有一空行,空行后边接着发送post数据,长度通过Content-Length: 12
指出,此post数据中包含两项
sn=123
n=asa -
POST服务器响应报文
HTTP/1.1 200 OK
Content-Type: text/php
Content-Length: 21Success
-
-
PUT
与GET从服务器获取数据相反的是,PUT是想服务器写入资源,比如像CSDN这样允许用户创建Web页面,并用PUT直接传输到服务器上,返回服务器上的资源地址;
PUT new.text HTTP/1.1
Host: host
Content-Type: text/html
Content-Length:128This is file content
-
PUT服务器响应报文
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1026host
-
-
DELETE
使用方法和GET一样,请求删除URL指定的资源文件
HTTP请求报文
HTTP的请求报文由请求行(Request line)、请求头部(Header)空行和请求数据;
- 请求行:请求报文的第一行,用来说明以什么方式请求、请求的地址和HTTP版本
- 头部字段:每个头部字段都包含一个名字和值,二者之间采用“:”连接,如:Connection:Keep-Alive
- 请求数据:请求数据:请求的主体根据不同的请求方式请求主体不同。
- GET、DELETE
这两种简单,看上面即可 - POST、PUT
POST和PUT的请求行和请求头部,在上述已经列出,现在主要介绍请求报文中的参数:- 一个参数的开始是由“–”加上boundary开始的
- 然后加上参数的Header信息,格式为字段名和字段值,二者之间使用“:”连接,如:Content-Type:text/plain
- 加上一个空行
- 发送的参数值
- 请求的数据以“–”+boundary+“–”结束真个请求的报文结束符
四、HTTP响应报文
HTTP的响应报文为3个部分组成:状态行、消息报文、响应正文
- 状态行:由HTTP版本、响应状态码、响应状态描述;如:HTTP/1.1 200 OK
- 响应报文头部:使用关键字和值表示,二者使用“:”隔开;如:Content-Type:text/html
- 响应内容:请求空行之后就是请求内容
- 常见状态码描述
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:
- 200 OK:客户端请求成功
- 400 Bad Request: 客户端请求语法错误、服务器无法解析
- 401 Unauthorized:请求未经授权
- 403 Forbidden:服务器收到请求拒绝服务
- 404 Not Found:请求资源不存在,常见URL错误
- 500 Internal Server Error:服务端内部错误
- 503 Server Unavailable:服务器当前不能处理客户端请求
- 301 Moved Permanently :永久重定向请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
- 302 Found :临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI