应用程序分类:
- B/S:Browser(浏览器)/ Server(服务器)
- C/S:Client(客户端)/ Server(服务器)
http协议:基于TCP/IP的'无状态'通信协议
前端(浏览器客户端)向后台(web服务器端)发送http请求获取数据
http请求报文:
-
一个HTTP请求报文由4个部分组成:
- 请求行(request line)、
- 请求头部(header)
- 空行
- 请求数据
-
1.form的enctype属性为编码方式,常用有两种:
- application/x-www-form-urlencoded
- multipart/form-data
-
2.默认为application/x-www-form-urlencoded。
-
3.当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2...),然后把这个字串追加到url后面,用?分割,加载这个新的url。
-
4.当action为post时候,浏览器把form数据封装到http body中,然后发送到server。 如果没有type=file的控件,用默认的application/x-www-form-urlencoded就可以了。 但是如果有type=file的话,就要用到multipart/form-data了。
-
5.当action为post且Content-Type类型是multipart/form-data,浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分割符(boundary)。
http响应报文:
Response Headers里的Content-Type指服务器告诉浏览器相应的数据,类型一般有这三种:
- application/x-www-form-urlencoded:数据被编码为名称/值对。这是标准的编码格式
- multipart/form-data: 数据被编码为一条消息,页上的每个控件对应消息中的一个部分
- text/plain: 数据以纯文本形式(text/json/xml/html)进行编码,其中不含任何控件或格式字符
Status-Code表示服务器发回的响应状态代码;
Reason-Phrase表示状态代码的文本描述。
状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。 1xx:指示信息--表示请求已接收,继续处理。 2xx:成功--表示请求已被成功接收、理解、接受。 3xx:重定向--要完成请求必须进行更进一步的操作。 4xx:客户端错误--请求有语法错误或请求无法实现。 5xx:服务器端错误--服务器未能实现合法的请求。
- 常见状态代码、状态描述的说明如下。 200 OK:客户端请求成功。 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。 403 Forbidden:服务器收到请求,但是拒绝提供服务。 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。 500 Internal Server Error:服务器发生不可预期的错误。 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。