多线程、界面开发、socket参考老师代码
Socket socket = server.accept();###实现监听
3.1 HTTP简介
什么是http:
超文本传输协议(HTTP, HyperText, Transfer, Protocol)是互联网上应用最为广泛的一种网络协议,用于定义客户端和服务端之间交换数据的过程。
作用:
可以使浏览器和服务器之间更高效的传输数据,它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
特点:
基于请求-响应模式,先有请求后有响应。
http协议的组成:
HTTP请求协议和HTTP相应协议。
HTTP请求协议包括:请求行、请求头、请求体
HTTP响应协议包括:响应行、响应头、响应体
3.2 HTTP的请求与响应
什么是HTTP请求?
客户端脸上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。
请求包括了一个请求行、若干请求头、以及请求体内容,请求头和请求体内容之间要用空行隔开。
什么是请求行?
请求行里包含了HTTP的请求方式、请求资源名称、HTTP版本。
请求行格式:请求方式 资源路径 协议/版本
例如:POST /post.html HTTP/1.1
HTTP请求方式:
请求行中的POST称之为请求方式,常见的请求方式有:POST、GET、DELECT、PUT
GET请求:
向服务器的特定资源发出查询请求,一般用于查询数据和资源的请求中。
· get请求查询的参数可以在浏览器的地址栏中显示
· 请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接
· 没有请求体
POST请求:
由服务器提交数据,一般用在客户端将本地数据或者资源提交给服务器,例如注册用户:讲用户信息提交给服务器。
· POST请求会把请求的数据放置在HTTP请求体中。
使用场景:
· GET请求通常用于查询操作
· POST通常用于提交数据操作
区别:
· 在HTTP规范中,没有对URL的长度和传输的数据大小进行限制,但是在实际开发过程中,对于GET请求,特定的浏览器和服务器对URL的长度有限制,因此,在使用GET请求时,传输数据会受到URL长度的限制。
· 对于POST,由于不是URL传值,理论上传输数据长度是不受限制的
DELETE用于删除数据的时候,PUT用于更新数据的时候
什么是请求头?
请求头用于描述客户端请求哪台主机,以及客户端的一些环境信息等
请求头以键值对(key=value)方式传递数据
什么是请求体?
代表着浏览器在post请求方式中传递给服务器的参数,请求体中的每一个数据都是使用键值对形式,多个值用&连接,注意:服务器在接收到请求体后需要单独解析。
什么是HTTP响应?
一个HTTP响应代表服务器向客户端回送的数据,它包括:一个响应行、若干个响应头、以及响应体,其中的一些响应头和响应体的内容都是可选的,响应头和响应体内容之间要用空行隔开。
什么是响应行?
响应行里包含了HTTP协议的版本,以及用于描述服务器对请求的处理结果。
格式:
协议/版本 状态码 状态码描述
· 状态码:服务和浏览器用于确定状态的固定数字号码
200:请求成功
302:请求重定向
404:请求资源不存在,通常是访问路径写错了,或者服务器删除了该资源
500:服务器内部发生错误
什么是响应头?
响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。
什么是响应体?
代表服务器向客户端浏览器回送的正文
传文件:enctype