package com.day5;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date; public class Server { /**刘诗华 Response响应
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception { //设置换行符
String CRLF = "\r\n";
//申请注册8080套接字
ServerSocket server=new ServerSocket(8080); System.out.println("开始接受请求...");
//接受客户端请求
Socket socket = server.accept();
//获取客户端对象输出流对象
OutputStream out = socket.getOutputStream();
//将字节输出流转换成字符输出流
OutputStreamWriter writer = new OutputStreamWriter(out);
//将字符输出流转换成缓冲字符流
BufferedWriter bw = new BufferedWriter(writer); StringBuilder response=new StringBuilder(); //响应报文主体内容
String html="<h1>Hello my name is liu shi hua</h1>"; //设置响应头信息
response.append("HTTP/1.1 200 OK").append(CRLF);
response.append("Server:Apache/2.4.10 (Win32) PHP/5.3.28").append(CRLF);
response.append("Date:").append(new Date()).append(CRLF);
response.append("Content-Type:text/html").append(CRLF);
response.append("Content-Length: "+html.getBytes().length).append(CRLF);
response.append(CRLF);
response.append(html); //发送数据到客户端
bw.write(response.toString()); //关闭资源流
bw.close();
socket.close();
server.close(); System.out.println(response); } }

响应报文格式

HTTP/1.1 200 OK
Server:Apache/2.4.10 (Win32) PHP/5.3.28
Date:Fri, 06 Jul 2018 14:52:32 GMT
Content-Type:text/html
Content-Length: 17 <h1>Hello</h1>

02-Response简单响应报文的更多相关文章

  1. HTTP请求协议中请求报文(Request Headers)跟响应报文(Response Headers)的简单理解

    背景 今儿个一新来的应届生问我,开发模式中所看到的web请求的请求头里的属性怎么理解,我便根据自己的经验随便拉开一个请求跟他聊了起来,顺便自己记录下文字版,以后再有交流直接发地址给他就好了,嘻嘻,机智 ...

  2. node——简单的服务器启动+乱码问题解决,响应报文头

    这个是一个比较简单的代码 // 1.加载hrrp模块 var http=require('http'); // 2.创建一个http服务对象 var server=http.createServer( ...

  3. IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式

    IP协议头IP包头格式: 1.版本号:4个bit,用来标识IP版本号.这个4位字段的值设置为二进制的0100表示IPv4,设置为0110表示IPv6.目前使用的IP协议版本号是4. 2.首部长度:4个 ...

  4. HTTP响应报文与工作原理详解

    超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议.HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到 ...

  5. 【转】HTTP响应报文与工作原理详解

    超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议.HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到 ...

  6. http请求报文格式和响应报文格式

    转载 出处 超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议.HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求 ...

  7. fiddler响应报文的headers属性详解

    fiddler响应报文的headers属性详解 (1)Cache头域 1. Cache-Control 在请求报文已经说过了,用于设置缓存的属性,浏览内容不被缓存. 2. Data 生成消息的具体时间 ...

  8. application/x-www-form-urlencoded接口响应报文中文乱码

    1.如何处理乱码 在进行接口测试时,在用httpclient post请求时,对于Content-Type:application/json来说,在写测试脚本时只需要为头信息和post请求指定相应编码 ...

  9. HTTP响应报文与工作原理详解(转)

    超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议.HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到 ...

随机推荐

  1. django学习之——Model

    打开 settings.py 找到 DATABASE  配置我们的数据库,(MySQL) # Database # https://docs.djangoproject.com/en/1.7/ref/ ...

  2. js 浏览器 宽高 各种

    常用: JS 获取浏览器窗口大小   // 获取窗口宽度   if (window.innerWidth)   winWidth = window.innerWidth;   else if ((do ...

  3. sass command

    compass create --bare --sass-dir "sass" --css-dir "css" --javascripts-dir " ...

  4. Python—内置函数

    内置函数 内置函数补充  all: 所有iterable类型,包含的元素要全为真才返回真 >>> all([0,-1,5]) False >>> all([-1,5 ...

  5. Sockets使用

    服务端 using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Threading ...

  6. 19_04_02校内训练[deadline]

    题意 给出一个二分图,左边为A集合,右边为B集合,要求把A集合中每一个点染为黑白两色中的一种,B集合中的颜色已定.染色后对于原本相邻且颜色相同的点,建立新的二分图,即得到了两个新的二分图,它们是独立的 ...

  7. Beta 冲刺 (6/7)

    Beta 冲刺 (6/7) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务 文字/口头描述 组织会议 开发wxpy部分功能 展示G ...

  8. 过滤器(filter),监听器(listener),与servlet的执行顺序

    创建: 加载顺序 监听器-->过滤器-->Servlet.项目启动后,容器会首先创建声明的各种监听器,为后继的各个事件监听做准备,然后创建过滤器,最后是Servlet.销毁的时候是反序进行 ...

  9. 深入path类

    Path类放在System.IO命名空间里.Path是一个只包含有静态方法的实例类,所以它不需要在使用之前实例化.它有各种方法用于处理文件的扩展名.文件名.根路径,以及和更多和路径相关的方面.下面就是 ...

  10. vm虚拟机下ubuntu连接上ssr

    第一步: 第二步: 第三步: 第四步: 完成!