1、http简介
http是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,其版本有http 1.0和http 1.1。http1.0的请求连接只能发送一次请求,一次请求过后,连接就断开,而http 1.1的请求连接可以处理多次请求,如果请求要求不断开连接,那么服务器会将连接保持,直到10秒过后,若还未收到请求,则将断开连接。
2、http请求
http请求的内容分为三部分:请求行、请求头、实体内容。请求行的格式如下:请求方式 + URI + http协议版本,请求头则是由多个键值对组成,而实体内容则是要提交的数据内容(POST方式提交)。
1、请求行
1.1 主要的请求方式
GET 请求获得URI代表的资源,其提交的数据将显示在URI中,数据大小不能超过1k,不适合提交重要数据(可以通过数据加密改善),浏览器默认访问资源为Get方式,没有实体内容
POST 向URI标识的资源提交数据,提交的数据在实体内容内,并且提交的内容没有大小限制
1.2 URI
URI 即Uniform Resource Identifier(统一资源标识符)的简称,用于标记资源
2、请求头
Accept 浏览器接受的数据类型
Accept-Charset 浏览器接受的编码格式
Accept-Encoding 浏览器接受的数据压缩格式
Accept-Language 浏览器接受的语言
Host 请求访问的目的地址(主机:端口号,必须的内容) If-Modified-Since 浏览器最后的缓存时间
User-Agent 浏览器类型
Cookie 浏览器保存的cookie信息
Connection 是否保持连接close关闭 Keep-Alive保持连接
Date 请求发出的时间
3、实体内容
POST请求提交的数据将通过实体内容提交
3、http响应
http响应的内容也分为三部分:响应行、响应头、实体内容。响应行的格式为:http协议版本 + 响应码 + 说明
1、响应行
1.1 响应码
2** 表示请求成功
3** 表示请求重定向
4** 表示客户端请求语法错误或请求无法找到
5** 表示服务器错误
1.2 常见响应码
200 表示请求成功
400 表示请求有语法错误
403 表示服务器拒绝提供服务
404 表示请求资源不存在
500 表示服务器出现错误
503 表示服务器不能处理请求
2、响应头
Server 表示服务器类型
Content-Ecoding 表示服务器发送时数据压缩的类型
Content-Length 表示服务器发送数据的长度
Content-Language 表示服务器支持的语言
Content-Type 表示服务器发送数据类型及数据编码
Last-Modified 表示服务器资源最后修改时间
Refresh 表示定时刷新
Content-Disposition 表示提示浏览器以下载的方式打开(用于下载文件)
Set-Cookie 表示服务器发送给浏览器的Cookie信息
Connection 表示是否断开与服务器的连接
Location 表示地址重定向,和响应码302一起使用
3、Content-Type的类型
常见的媒体格式类型如下:
text/html : HTML格式
text/plain :纯文本格式
text/xml : XML格式
image/gif :gif图片格式
image/jpeg :jpg图片格式
image/png:png图片格式
以application开头的媒体格式类型:
application/xhtml+xml :XHTML格式
application/xml : XML数据格式
application/atom+xml :Atom XML聚合格式
application/json : JSON数据格式
application/pdf :pdf格式
application/msword : Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)
另外一种常见的媒体格式是上传文件之时使用的:
multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式