URL - 统一资源定位符
通过一个URL能够找到互联网上唯一的1个资源
URL基本格式:协议://主机地址/路径
主机地址(存放资源的主机):1.ip地址、2.域名
协议:不同的协议,代表着不同的资源查找方式、资源传输方式
HTTP(Hypertex Transfer Protocol)
超文本传输协议,访问的是远程的网络资源,格式是:http://
file
访问的是本地计算机上的资源,格式是:file://(不加主机地址)
mailto
访问的是电子邮件地址,格式是mailto:
FTP
访问的是共享主机的文件资源,格式是ftp://
HTTP协议的作用:规定客户端和服务器之间的数据传输格式;让客户端和服务器能有效的进行数据沟通
HTTP特点:简单快速(协议简单所以程序规模小)、灵活(允许传输各种数据)、HTTP0.9和1.0使用非持续连接(限制每次连接只处理一个请求,服务器对客户端的请求做出相应后,马上断开连接)
HTTP的基本通信过程(两大步骤):请求(客户端向服务器发送请求)、响应(服务器返回数据给客户端)
HTTP请求(客户端向服务器发送请求):请求头:包含对客户端的环境描述、客户端请求信息等
请求体:客户端发给服务器的具体内容
HTTP响应(服务器返回数据给客户端):响应头:包含了服务器的描述、对数据的描述
响应题:服务器返回给客户端的具体数据
HTTP请求的方法:GTE、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH
PUT:增
DELETE:删
POST:改
GET:查
实际上GET、POST都能做到增删改查
GET和POST的主要区别表现在数据传递上
GET
在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开,比如
http://www.test.com/login?username=123&pwd=234&type=JSON
由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB
POST
发给服务器的参数全部放在请求体中
理论上,POST传递的数据量没有限制(具体还得看服务器的处理能力)
选择GET和POST的建议
如果要传递大量数据,比如文件上传,只能用POST请求
GET的安全性比POST要差些,如果包含机密、敏感信息,建议用POST
如果仅仅是索取数据(数据查询),建议使用GET
如果是增加、修改、删除数据,建议使用POST
HTTP协议规定:一个完整的由客户端发给服务器的HTTP请求包中包含以下内容:
请求头:包含了对客户端的环境描述、客户端请求信息等
GET/minion.png HTTP/1.1 //包含了请求方式、请求资源路径、HTTP协议版本
Host:120.25.226.186:32812 //客户端想访问的服务器主机地址
User-Agent: Mozilla/5.0 // 客户端的类型,客户端的软件环境
Accept: text/html, / // 客户端所能接收的数据类型
Accept-Language: zh-cn // 客户端的语言环境
Accept-Encoding: gzip // 客户端支持的数据压缩格式
请求体:客户端发给服务器的具体数据,比如文件数据(POST请求才会有)
客户端向服务器发送请求,服务器应当做出响应,即返回数据给客户端
HTTP协议规定:1个完整的HTTP响应中包含以下内容
响应头:包含了对服务器的描述、对返回数据的描述
HTTP/1.1 200 OK // 包含了HTTP协议版本、状态码、状态英文名称
Server: Apache-Coyote/1.1 // 服务器的类型
Content-Type: image/jpeg // 返回数据的类型
Content-Length: 56811 // 返回数据的长度
Date: Mon, 23 Jun 2014 12:54:52 GMT // 响应的时间
响应体:服务器返回给客户端的具体数据,比如文件数据
常见响应状态码:
200 OK 请求成功
400 Bad Request 客户端请求的语法错误,服务器无法解析
404 Not Found 服务器无法根据客户端的请求找到资源
500 Internal Server Error 服务器内部错误,无法完成请求