您的位置:首页 > 理论基础 > 计算机网络

Http相关 --概念

2015-12-26 21:34 706 查看
1 http 是应用层协议是万维网交换文件(文本,声音,图像等多媒体)的基础
*
* 2 http工作流程:
*    1 客户端与服务器建立连接.
*    2 建立连接后,客户端发送请求服务器,
*         发送的信息包括请求头与请求体
*    3 服务器接受到请求之后,将信息返回客户端,
*         返回的信息包括请求头与请求体
*    4  客户端显示服务器的信息在浏览器上,断开连接.
*
* 3 http特点:
*      http协议是一个无状态的协议,同一个客户端请求与上一次的请求是
*         没有对应关系.而且每次连接完成之后都会断开链接.
*
*  4 tcp/ip 的三次握手
*     Tip建立连接的底层基础.
*
*     客户端首先发送一个syn信息,服务器使用syn+ack应答来表示连接,
*     然后客户端再次以ack信息相应.这样,连接就建立了.
*
*   5 post/get:
*       get将请求的参数放在请求头
*       post将请求的参数放在请求的实体
*
*   6  返回码:
*       200   客户端请求成功
*       403  服务器收到请求,但拒绝提供服务
*       404 请求资源不存在
*       500 服务器发生不可预期的错误
*
*   7.http1.0 与 http 1.1 区别:
*
*     http 1.0 每次请求都要建立新的tcp连接,链接不可复用.
*     http 1.1 新的请求可以在上次建立的tcp连接上发送请求
*         连接可以复用,减少三次握手的开销,提高效率.
*
*


/*
* 使用HttpURLConnection  通过get/post 连接服务器
* /

private void doPost() {

/**
* 如果采用post提交,则参数放在数据实体中提交
*/
try {
URL httpUrl=new URL(url);
HttpURLConnection conn=(HttpURLConnection) httpUrl.openConnection();
//设置连接超时的时间
conn.setReadTimeout(5000);
//设置连接超时的方法
conn.setRequestMethod("POST");
//传递参数
OutputStream out=conn.getOutputStream();
//内容
String content="name="+name+"&age="+age;
//写入到服务器
out.write(content.getBytes());

//读取数据
BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));
final StringBuffer sb=new StringBuffer();
String line;
while((line=br.readLine())!=null){
sb.append(line);
}

handler.post(new Runnable() {

@Override
public void run() {
//加载数据
webview.loadData(sb.toString(), "text/html;charset=utf-8", null);
}
});

} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}

/*
* * 如果采用get提交 ,则参数采用路径拼接的方式
* 采用get方式发送请求之时,对于中文字符需要进行编码处理.
*
*/
private void doGet(){

try {
url=url+" ? name="+URLEncoder.encode(name, "utf-8")+"& age= "+URLEncoder.encode(age, "urf-8");

URL httpUrl=new URL(url);
HttpURLConnection conn=(HttpURLConnection) httpUrl.openConnection();
//设置连接超时的时间
conn.setReadTimeout(5000);
//设置连接超时的方法
conn.setRequestMethod("GET");
//读取数据
BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));
final StringBuffer sb=new StringBuffer();
String line;
while((line=br.readLine())!=null){
sb.append(line);
}

handler.post(new Runnable() {

@Override
public void run() {
//加载数据
webview.loadData(sb.toString(), "text/html;charset=utf-8", null);
}
});

} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: