应用程序分类:
- 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:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。