http状态码

随着做的项目越来越多,越来越感觉到HTTP这个东西的重要性。今天把基础的知识总结一下。

1xx:指示信息--表示请求已接受,继续处理

2xx:成功--表示请求已被成功接受、理解、接受

3xx:重定向--要求完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求

常见状态码:

200 OK                        //客户端请求成功

400 Bad Request              //客户端请求有语法错误,不能被服务器所理解

401 Unauthorized              //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

403 Forbidden                //服务器收到请求,但是拒绝提供服务

404 Not Found                //请求资源不存在,eg:输入了错误的URL

500 Internal Server Error    //服务器发生不可预期的错误

502 Bad Gateway是指错误网关    //php语言中语法错误 通常也会返给页面这个错误

503 Server Unavailable        //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

HTTP工作原理

1,浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址;

2, 解析出IP地址后,根据该ip地址和默认端口80,和服务器建立TCP链接;

3,浏览器发出读取文件的http请求,该请求保文作为tcp三次握手的第三个报文发给服务器;

4,服务器对浏览器作出响应,并把对应的html文本发给浏览器

5,释放tcp链接(若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求);

6,浏览器拿到html文本并显示内容

GET和POST请求的区别,

1,GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.

2,GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.

3,GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。

4,GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.

你可能感兴趣的:(http状态码)