第199个点开的人,我教你做一个Web服务器/斜眼笑
1.Web服务器
Web服务器也叫超文本传输协议(HTTP)服务器,因为它是用HTTP与客户端(Web浏览器)进行通信的。说到通信,你是不是想到聊天室中的Socket与ServerSocket了,那就安排上了。
我们输入网址时前面都会带有http,那么是否想过为什么要带有http呢?它有啥用?
其实它是一种基于“请求-响应”的网络协议。协议其实就是一种规则,所有的WWW文件都必须遵守这个标准规则。
客户端发出一个请求,服务器端对该请求进行响应。比如我在地址栏输入https://www.baidu.com,一按回车瞬间就是我这向百度服务器发送了一个请求,然后出来的百度一下页面就是它给的响应。
2.HTTP请求
HTTP协议的特点:
http底层是用的socket
请求和响应必须成对出现
先有请求然后才有响应
默认端口号80
下图就是访问百度后得到的相应:
可以看到一个HTTP请求包括三部分:
1.请求方法--统一资源标识符(URI)--协议/版本
提交方式有很多,常用的GET和POST。它们之间的区别:GET的提交的参数会显示到地址栏上,而POST不显示.GET往往是有大小限制的,而POST没有大小的限制.GET没有请求体,而POST有请求体.文件上传一定是POST。
2.请求头 都是键值对的形式显示的.一般一个key对应一个value
3.实体(请求内容) 就是POST提交方式的提交的参数.
明白了请求之后响应当然也是类似的!
3.Socket与ServerSocket
Socket套接字是网络连接的端点。它让应用程序可以从网络中读取数据,可以向网络中写入数据。我们常用的QQ,微信就是这样的,我们之间的聊天实际上是两台电脑上的两个QQ应用程序通过连接发送和接受字节流。
Socekt类表示一个客户端套接字(在想要连接到服务器时创建的),但如果想实现一个服务器,则需要ServerSocket类,它得时刻待命(accept()方法),因为它不知道客户端什么时候会发起连接。当它收到连接请求后,会创建一个Socket实例来处理与客户端的通信。