http协议客户端向服务器端请求时一般需要发送的内容
out.println("GET /shopping/index.html HTTP/1.1");//请求行 包括请求方式,文件路径, http协议版本(必写)
请求头....
out.println("Aceept: */*");//客户端能够处理的文件类型(不是必须)
out.println("Host: 192.168.1.111:8080");//客户端要访问的主机及服务器的端口(必写),否则会出现400(请求错误)
out.println("Connection: close");//传输完成后和服务器的链接状态(不是必须)
out.println();//空行用来区分请求头和请求体(必写)
请求体....
改用URL和URLConnection来处理更为方便
//URL这个类通过获取URLConnection连接器的对象(也就是将连接封装成了对象:java中内置的可以解析的具体协议的对象+socket)
//另外,Socket 和 DatagramSocket 是负责传输层工作的,而URL或者URLConnection是负责应用层工作的
//所以网络编程用URL是比较好的(只保留服务器端的应答体,应答消息头和应答消息行不会显示)
URL url = new URL("http://localhost:8080/shopping/login.html?name=HAHA");
URLConnection con = url.openConnection();
System.out.println(con);
System.out.println(url.getProtocol());
System.out.println(url.getPort());
System.out.println(url.getPath());
System.out.println(url.getFile());
System.out.println(url.getQuery());
/*
http 协议
8080 端口
/shopping/login.html 路径
/shopping/login.html?name=HAHA 文件名(包括path部分 + query部分)
name=HAHA 查询部分(也就是参数部分)
*/ InputStream in = con.getInputStream();
byte[] bt = new byte[1024*2];
int len = in.read(bt);
System.out.println(new String(bt, 0, len, "utf-8"));
http协议客户端向服务器端请求时一般需要发送的内容的更多相关文章
- 【Java】学习路径57-TCP协议客户端与服务器端的关闭
在TCP协议中,如果发送端(客户端)关闭了,那么接收端(服务器端)端就会收到这个消息. 那么接收端(服务器端)怎么知道的呢? 我们进行实验: 首先在发送端中编写一段程序,当用户输入"end& ...
- SpringMVC处理跨域请求时的一个注意事项
由于公司对SpingMVC框架里面的东西进行了扩展,在配置SpringMVC时没有使用<mvc:annotation-driven>这个标签.而且是自己手动来配置HandlerMa ...
- TCP网络协议通信原理(客户端和服务器端)
下面直接用代码来说明TCP协议的基础知识: 服务器端代码块: from socket import * from time import ctime ''' 指定主机地址.工作端口号.接收缓存的长度 ...
- python服务器端、客户端的模型,客服端发送请求,服务端进行响应(web.py)
服务器端.客户端的模型,客服端发送的请求,服务端的响应 相当于启动了一个web server install web.py 接口框架用到的包 http://webpy.org/tutorial3.zh ...
- 关于http请求时 安全协议问题 PKIX path building failed 解决办法
该问题的解决办法 1.在请求前需要将证书导入,不推荐 2.绕开安全协议处理 下面的代码时一段http请求并且绕开安全协议.可直接使用 /** * * @param url 需要请求的网 ...
- 如何使用HttpClient来发送带客户端证书的请求,以及如何忽略掉对服务器端证书的校验
最近要做客户端和服务器端的双向认证,在客户端向服务器端发送带证书的请求这里有一点问题,网上的例子大多都不太好使,于是找了github上httpclient源代码中的例子改造了一下,终于弄明白了 git ...
- 当客户端提交更新数据请求时,是先写入edits,然后再写入内存的
http://blog.sina.com.cn/s/blog_6f83c7470101b7d3.html http://blog.csdn.net/slq1023/article/details/49 ...
- java在线聊天项目0.5版 解决客户端向服务器端发送信息时只能发送一次问题 OutputStreamWriter DataOutputStream socket.getOutputStream()
没有解决问题之前客户端代码: package com.swift; import java.awt.BorderLayout; import java.awt.Color; import java.a ...
- python 网络通讯 服务器端代码demo,能够同时处理多个客户端的连接请求
这是一个python网络通讯服务器端的代码demo,能够同时处理多个客户端的连接请求. from socket import * import threading from datetime impo ...
随机推荐
- mac下mysql数据库的配置
这里记录一下. 之前在mac下使用brew install mysql安装,但是安装完成后发现密码不好修改,上网搜了下发现mac下使用命令行安装mysql确实存在很多问题,这一点确实远不如Ubuntu ...
- 如何提交docker镜像到DockerHub
Write a Dockerfile In detail: FROM(指定基础image) 构建指令,必须指定且需要在Dockerfile其他指令的前面.后续的指令都依赖于该指令指定的image.FR ...
- 最近碰到了一个病毒木马:virus.win32.ramnit.B
由于 使用了 简单游 平台上的挂机工具: 番茄-自动人机对战免费版1217 ,使用了很久,头段时间家里电脑 360提示有病毒,本来我一直忽略的,但 我扫描了一下,大量的这个木马,于是 吧 简单游卸载 ...
- Python学习笔记(2):数据库访问
本来打算继续用Access的,但费了非常大的劲,还是没有搞定.回过头,发现使用sqlite,简单到令人发指.干脆,把C#的CommonCode往这边迁移,先把AccessDB搬过来再说. 类结构和C# ...
- BootStrap安装
1. 安装Node.js http://nodejs.org/download/ 2. 加速NPM安装 npm install -g cnpm --registry=http://r.cn ...
- hdu 1845
一看题意就是二分匹配问题,建边是双向的,两个集合都是n个点 这题的图很特殊,每个点都要与三个点相连,在纸上画了六个点的图就感觉此图最大匹配肯定是六,除以2就是原图的匹配了,就感觉这样的图肯定会达到满匹 ...
- MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理
1:local库是MongoDB的系统库,记录着时间戳和索引和复制集等信息 gechongrepl:PRIMARY> use local switched to db local gechong ...
- Android使用的设计模式2——策略模式
今天讲解一下策略模式,策略模式也是很常用的设计模式,对多种算法或者数据结构选择使用的情况下,经常会使用策略模式来管理这些算法.下面会简单讲解一下策略模式的概念和基本实现.然后结合Android里面的实 ...
- SQL 性能调优日常积累【转】
阅读目录 (1)选择最有效率的表名顺序(只在基于规则的优化器中有效) (2)WHERE子句中的连接顺序 (3)SELECT子句中避免使用 ‘ * ‘ (4)减少访问数据库的次数 (5)在SQL*Plu ...
- javamail邮件发送例子
public class EmailTask{ // Session used by the javamail classes private Session session; ...