1.HTTP常用方法
1.1 GET:获取资源
GET本质就是发送一个请求来获取服务器上的某一资源。资源通过HTTP头部和呈现数据返回给客户端
1.2 HEAD:获取报文首部
HEAD和GET本质是一样的,区别在于HEAD不含呈现数据,而仅仅是HTTP头部信息,一般常用于确认URL的有效性及资源更新的日期时间
1.3 POST:传输实体主题
POST向服务器提交数据
补充:GET和POST的区别:
- GET提交的数据会放在URL之后,以?分割URL和数据,参数之间以&相连,POST方法是把提交的数据放在HTTP包的Body中
- GET提交的数据大小有限制,最多只能有2K字节(这是因为浏览器对URL长度有限制),而POST方法提交的数据没有限制
- GET方法需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值
- GET方式提交数据会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将会出现在URL上,如何页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码
1.4 PUT:传输文件
PUT和POST极为相似,都是向服务器发送数据,但是它们之间有一个重要的区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定
1.5 OPTIONS:询问支持的方法
OPTIONS用户获取当前URL所支持的方法
2.HTTP常用状态码
1XX:表示接收的请求正在处理
2XX:表示请求成功
200
200表示请求在服务器端被正常处理了,在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变
204
204表示服务器接收的请求已经成功处理了,但是在返回的响应报文中不含实体的主体部分,另外,也不允许返回任何实体的主体。当浏览器在发送请求收到204响应后,它显示的页面不会发生更新,通常应用在只需要客户端向服务器发送信息,而服务器不需要发送新信息的情况下使用
206
206表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求,响应报文内包含指定返回的实体内容
3XX:重定向
301
永久重定向,301状态码表示请求的资源已经分配了新的URL,以后请求该资源应该访问新的URL
302
临时重定向,302表示请求的资源已经被分配了新的URL,希望客户端本次能使用新的URL访问
301和302状态码都表示重定向,就是说浏览器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取。它们的不同点在于:301表示旧地址的资源已经被永久的移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧地址交换为重定向之后的网址;302表示旧地址的资源还在(仍然可以访问),这个重定向只是临时地从旧地址跳转到新地址
303
该状态码和302基本相似,表示由于请求资源存在另外一个URL,应使用GET方法定向获取请求的资源
307
临时重定向,307不会强制浏览器将POST方法改为GET方法,而是遵循浏览器自身的标准
4XX:表示客户端错误
400
400状态码表示请求报文中存在语法错误
401
401状态码表示发送的请求需要有通过HTTP认证的认证信息,第一次收到401状态码表示需要进行用户认证,第二次再收到401状态码说明用户认证失败
403
403状态码表明对请求资源的访问被服务器拒绝了,当未获得文件系统的访问授权,访问权下出现某些问题等都可能发生403
404
404状态码表示服务器上无法找到请求资源,也有可能是服务器端在拒绝请求且不想说明原因的时候使用
5XX:服务器错误
500
500状态码表示服务器端在执行请求时发生了错误
503
503状态码表明服务器暂时处于超负荷或正在进行维护,现在无法处理请求