文章目录
网络分层模型
常用服务器的端口号总结
应用层(协议)
www(万维网)
HTTP(不安全的拉协议)
http采用持久化连接(TCP)
HTTP的请求与响应的报文头
cookie字段位于报文的header首部行之中(首部行含有浏览器与用户的连接方式是长连接还是短连接+cookie的信息)
方法字段位于请求报文的请求行之中
get请求的请求参数位于请求行中(RequestParam), post请求的请求参数位于请求报文的实体主体中
常用的状态码
Socket套接字
套接字是应用进程和传输协议之间的一扇门(套接字是传输层和应用层的接口)
UDP套接字由:{目的IP地址+目的端口号} 确定的
TCP套接字由:{源IP地址+源端口号+目的IP地址+目的端口号} 确定的
套接字编程(以TCP为例)
网络编程的三要素:传输协议、IP地址(服务器端)、端口号(服务器端)
使用IO对象进行通信!!!
服务器端建立一个serverSocket对象,绑定该进程的端口号,使用监听器监听客户端的连接,调用accept阻塞住;客户端创建一个socket(服务器端的ip+端口号)发起连接,之后开始tcp的三次握手,连接成功就开始进行数据的传输。(服务器端使用新的socket进行传输数据)
public class TCPServer {
public static void main(String[] args) throws IOException {
ServerSocket server=new ServerSocket(8888);//注意写的客户端的端口号,运行电脑显示监听状态
Socket socket=server.accept();//服务器获取端口号为8888的用户的IO流
//服务器读取客户端的数据
InputStream is=socket.getInputStream();
byte[] bs=new byte[1024];
int len=is.read(bs);
System.out.println(new String(bs,0,len));
//服务器向客户端回复即发送数据
OutputStream os=socket.getOutputStream();
os.write("收到谢谢".getBytes());
socket.close();
server