了解一下Http常见状态码、Http协议的工作特点和原理、Http请求Post与Get的区别

HTTP协议常见状态码
基本涵盖了所有问题
HTTP 400 – 请求无效
HTTP 401.1 – 未授权:登录失败
HTTP 401.2 – 未授权:服务器配置问题导致登录失败
HTTP 401.3 – ACL 禁止访问资源
HTTP 401.4 – 未授权:授权被筛选器拒绝
HTTP 401.5 – 未授权:ISAPI 或 CGI 授权失败

HTTP 403 – 禁止访问
HTTP 403 – 对 Internet 服务管理器 的访问仅限于 Localhost
HTTP 403.1 禁止访问:禁止可执行访问
HTTP 403.2 – 禁止访问:禁止读访问
HTTP 403.3 – 禁止访问:禁止写访问
HTTP 403.4 – 禁止访问:要求 SSL
HTTP 403.5 – 禁止访问:要求 SSL 128
HTTP 403.6 – 禁止访问:IP 地址被拒绝
HTTP 403.7 – 禁止访问:要求客户证书
HTTP 403.8 – 禁止访问:禁止站点访问
HTTP 403.9 – 禁止访问:连接的用户过多
HTTP 403.10 – 禁止访问:配置无效
HTTP 403.11 – 禁止访问:密码更改
HTTP 403.12 – 禁止访问:映射器拒绝访问
HTTP 403.13 – 禁止访问:客户证书已被吊销
HTTP 403.15 – 禁止访问:客户访问许可过多
HTTP 403.16 – 禁止访问:客户证书不可信或者无效
HTTP 403.17 – 禁止访问:客户证书已经到期或者尚未生效 HTTP 404.1 -

无法找到 Web 站点
HTTP 404- 无法找到文件
HTTP 405 – 资源被禁止
HTTP 406 – 无法接受
HTTP 407 – 要求代理身份验证
HTTP 410 – 永远不可用
HTTP 412 – 先决条件失败
HTTP 414 – 请求 – URI 太长

HTTP 500 – 内部服务器错误
HTTP 500.100 – 内部服务器错误 – ASP 错误
HTTP 500-11 服务器关闭
HTTP 500-12 应用程序重新启动
HTTP 500-13 – 服务器太忙
HTTP 500-14 – 应用程序无效
HTTP 500-15 – 不允许请求 global.asa
Error 501 – 未实现
HTTP 502 – 网关错误

 

 

 

 

HTTP协议的工作特点和工作原理
工作特点:
基于B/S模式,通信开销小、简单快速、传输成本低,比如打开浏览器就可以访问,使用灵活、可使用超文本传输协议(HTML)、节省传输时间、无状态
工作原理:
客户端发送请求给服务器,创建一个TCP连接,指定端口号。默认80,连接到服务器,服务器监听浏览器请求,一旦监听到客户端请求,分析请求后,服务器会向客户端返回状态信息和数据内容
HTTP协议常见请求/响应头
Content-Type(请求的实体对应的信息包括字符集)、Accept(指定客户端能接收的内容类型)、Origin(最初的请求来源于哪里,主要用户post请求)、Cookie(代表http请求发起时,发送给服务器端cookie的值)、Cache-Control(指定请求和响应的缓存机制)、User-Agent(用户信息)、Referrer(上级请求路径)、X-Forwarded-For(请求端真实的IP,做代理时可以用它获取)、Access-Control-Allow-Origin(允许特定的域名访问,通常用于跨域)、Last-Modified(请求资源的最后响应时间)

GET和POST请求的区别

1:在浏览器端,反复返回上一页在GET请求上是没有什么多大变化的,而POST就会重新提交
2:GET可以被收藏为书签,而POST不可以被收藏为书签
3: GET请求可以被浏览器缓存,POST不会
4:GET在历史记录中会保存参数,而POST不会
5:数据长度中GET有限制,最大长度取决于浏览器大小,一般2048个字符,POST没限制
6: GET在允许的数据类型也有差别,GET只允许ASC2这样的字符,POST没限制,也允许二进制数据,GET只允许GB2312
7:GET的安全性差点,是URL的一部分;POST相对来说安全点儿,不会被保存到服务器WEB日志中
8:效率上GET比POST快,以下是原因

①.post请求包含更多的请求头
  因为post需要在请求的body部分包含数据,所以会多了几个数据描述部分的首部字段(如content-type),这其实是微乎其微的
②.post在真正接受数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据
  post请求的过程:
  1.浏览器请求tcp连接(第一次握手)
  2.服务器答应进行tcp连接(第二次握手)
  3.浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
  4.服务器返回100 continue响应
  5.浏览器开始发送数据
  6.服务器返回200 ok响应
  get请求的过程
  1.浏览器请求tcp连接(第一次握手)
  2.服务器答应进行tcp连接(第二次握手)
  3.浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
  4.服务器返回200 ok响应
  也就是说,目测get的总耗是post的2/3左右
③.get会将数据缓存起来,而post不会
使用ajax采用get方式请求静态数据(比如html页面,图片)的时候,如果两次传输的数据相同,第二次以后耗费的时间将在10ms以内(chrome测试),而post每次耗费的时间都差不多……
  chrome下和firefox下如果检测到get请求的是静态资源,则会缓存,如果是数据,则不缓存,但是IE这个傻X啥都会缓存起来

posted @ 2018-01-04 10:26  温柔的风  阅读(248)  评论(0编辑  收藏  举报