HTTP状态码

HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。
HTTP状态码主要有5种,代表5种不同类型的响应:

  1. 1xx:信息性状态码,代表接收到请求,正在处理
  2. 2xx:成功状态码,代表请求正常处理完毕
    1. 200 OK
      表示从客户端发来的请求在服务端被正常处理了

    2. 204 No Content
      服务器接收的处理已经全部处理完毕,但是返回的响应报文中不含有实体的主体部分,另外也不允许返回任何的主体,浏览器接收到204响应之后页面不更新。

    3. 206 Partial Content
      客户端进行了范围请求,服务器成功执行了这部分的GET请求。响应报文中包含由Content-Range指定的实体内容。

  3. 3xx:重定向,表明浏览器需要执行某些特殊的处理以正确处理请求。
    1. 301 Moved Permanenty
      永久重定向,301表示请求的资源已经被分配了新的URI,以后应使用资源现在所指的URI。

    2. 302 Found
      临时重定向,该状态码表示请求的资源已被分配了新的URI,希望用户(本次)能够使用新的URI访问。
      与301不同,302是临时重定向,已移动的资源对应的URI在将来可能还是会发生改变。
    3. 303 See Other
      表示请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。

    4. 304 Not Modified
      304虽然被划分在3xx中,但是和重定向并没有关系。该状态码表示客户端发送附带条件的请求时,服务器允许请求访问资源,但因发生请求未满足条件的情况后,直接返回304 Not Modified(服务器资源未改变,可直接使用客户端未过期的缓存)。304状态码返回时,不包含任何响应的主体部分。

    5. 307 Temporary Redirect
      临时重定向。该状态码与302 Found 有着相同的含义。尽管302标准禁止POST变换成GET,但实际使用时大家并不遵守。
      307会遵照浏览器标准,不会从POST变成GET,但是对于处理响应的行为,每种浏览器有可能出现不同的情况。

  4. 4xx:客户端错误,表示服务器无法处理请求,错误是由于客户端引起的。
    1. 400 Bad Request
      请求报文中存在语法错误。当错误发生时,需修改请求的内容再次发送请求。

    2. 401 Unauthorized
      表示发送的请求需要有通过HTTP认证(BASIC认证、DIGEST认证)的认证信息。若之前已经进行过1次请求,则表示用户认证失败。
      返回含有401的响应必须包含一个使用于被请求资源的WWW-Authenticate首部用以质询(challenge)用户信息。当浏览器第一次接收401的时候,会弹出认证用的对话窗口。

    3. 403 Forbidden
      对请求资源的访问被服务器拒绝了。

    4. 404 Not Found
      服务器上无法找到请求的资源。

  5. 5xx:服务器错误,表示服务器在处理请求时出错
    1. 500 Internal Server Error
      服务器在执行请求时发生了错误,也有可能是web应用存在的bug或临时的故障。

    2. 503 Server Unaviabilable
      服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

OSI七层模型

http://www.cnblogs.com/qishui/p/5428938.html 这篇文章讲的很详细了。

  1. 物理层 : 建立、维护、断开物理连接。
  2. 数据链路层 : 建立逻辑连接、进行硬件地址寻址、差错检验等功能。
  3. 网络层 : 进行逻辑地址寻址,实现不同网络之间的路径选择。
  4. 运输层 : 定义传输数据的协议端口号,以及流控和差错校验。
    协议有:TCP UDP ,数据包一旦离开网卡即进入网络传输层。
  5. 会话层 : 建立、管理、终止会话。
  6. 表示层 : 数据的表示、安全和压缩。
  7. 应用层 : 网络服务与最终用户的一个接口。
    协议有:HTTP FTP TFTP SMTP POP3 SNMP DNS TENNET HTTPS DHCP

HTTP协议的工作特点与工作原理

工作特点

  • 基于B/S模式
  • 通信开销小、传输快速、传输成本低
  • 使用灵活、可使用超文本传输协议
  • 节省传输时间
  • 无状态

工作原理

客户端发送请求给服务器,创建一个TCP连接,指定端口号(默认为80),服务器监听浏览器请求,一旦监听到客户端请求,分析请求类型后,服务器会向客户端返回状态信息和数据内容。

HTTP协议常见的请求/相应头

  • Content-Type :实体主体内对象的媒体类型,和Accept一样,字段值用type/subtype形式赋值。

    Content-Type: text/html; charset=UTF-8

  • Accept :可通知服务器用户代理能够处理的媒体类型及媒体类型的相对优先级。可使用 type/subtype 这种形式,一次指定多种媒体类型。

    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

    • 文本类型
      text/html, text/plain, text/css ...
      application/xhtml+xml, application/xml ...

    • 图片类型
      image/jpeg, image/gif,image/png ...

    • 视频文件
      video/mpeg, video/quicktime ...

    • 应用程序使用的二进制文件
      application/octet-stream, application/zip ...

  • Origin :最初的请求来源与哪,主要用与post请求
  • Cookie :HTTP请求发起时,发送给服务端的cookie值
  • Cache-Control :指定请求和响应的缓存机制
  • User-Agent :用户信息
  • Referrer :上级请求路径
  • X-Forwarded-For :强求端的真实IP(做代理的时候可以用次来获取)
  • Access-Control-Allow-Origin :允许特定的域名来进行访问,通常用做跨域使用
  • Last-Modified :指明资源最终修改的时间

HTTP协议的请求方法

  • GET
  • POST
  • HEAD
  • OPTIONS
  • PUT
  • DELETE
  • TRACE

GET 和 POST 的区别:

  1. GET在刷新和后退时,没影响,而POST会重新提交信息。
  2. GET可以被收藏为书签,而POST不行。
  3. GET 可以被缓存,POST不行。
  4. GET 请求时,编码类型为 application/x-www-form-urlencoded,POST 除了这个,还可以是Multipart/form-data(文件上传)
  5. GET 参数直接显示在url中,post看不到
  6. 由于url限制,GET 的数据量是有限的
  7. POST比GET更安全

HTTPS 的工作原理

HTTPS 是一种基于SSL/TLS的HTTP协议,所有的HTTP数据都是在SSL/TLS协议封装之上传输的。

HTTPS 协议在HTTP 协议的基础上,添加了SSL/TLS握手以及数据加密传输,也属于应用层协议。

常见网络协议含义及端口

  • FTP :文件传输协议(21)
  • Telnet :用于远程登录的端口(23)
  • SMTP :定义了简单邮件传输协议(25)
  • POP3 :接收邮件(110)
  • HTTP :超文本传输协议(80)
  • DNS :域名解析服务(53)

PHP网络协议相关考点的更多相关文章

  1. 网络协议相关面试问题-http协议相关面试问题

    HTTP协议简介: 一些基本概念: 协议:指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则. HTTP协议:超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML ...

  2. 网络协议相关面试问题-DNS相关面试问题

    对于网络上的大部通讯都是基于TCP/IP协议的, 其中最重要的是IP协议,它是基于IP地址的,而计算机通讯只能识别IP地址,如192.168.0.1,而不能识别像咱们在浏览器敲得见名之义的" ...

  3. 网络协议相关面试问题-TCP与IP网络模型

    互联网应用的实现主要是通过分层来实现的,每一层有自己相应的功能,上层依赖于下层,具体层次如下图: 下面具体一层层来了解: 物理层 / 实体层: 也就是将电脑通过物理的手段连接起来,其实也就是01电子信 ...

  4. 网络协议相关面试问题-TLS与SSL握手

    HTTPS是什么? HTTPS并不是一个单独的协议,而是对工作在一加密连接(SSL / TLS)上的常规HTTP协议.通过在TCP和HTTP之间加入TLS(Transport Layer Securi ...

  5. 网络协议相关面试问题-https加密算法相关面试问题

    密钥: 密钥是一种参数,它是在使用密码cipher算法过程中输入的参数,同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文.所以说算法既使公开了但是密钥参数不同其结果也是不同的,其中关于明文 ...

  6. TCP/IP网络协议基础知识集锦[转]

    引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP协议簇是由OSI七层模型发展而来的,之所以 ...

  7. Windows网络编程笔记4 -- Winsock 协议相关知识

     Win32平台上的Winsock编程,Winsock是一个与协议无关的接口.以下协议是我们需要了解的: 网络协议的特征包括: 1.  面向消息 2.  面向连接和无线接 3.  可靠性和次序性 4. ...

  8. php面试专题---10、网络协议考点

    php面试专题---10.网络协议考点 一.总结 一句话总结: 网络的考点其实就是这些:常见状态码,常见协议,osi七层模型,http和https 1.HTTP/1.1中,状态码200.301.304 ...

  9. OSI 七层模型和 TCP/IP 四层模型 及 相关网络协议

    简介 OSI 是理论上的模型,也就是一个统一的国际标准,现在的很多网络设备或者是网络协议都不同程度的精简了自己的所谓的模型,那么他们为了自己的通讯兼容都会参考这个OSI模型 TCP/IP 包括: TC ...

随机推荐

  1. SQL外键的作用

    貌似很有用,但没有真正用过: SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3) ...

  2. 常用的Atom插件

    1.simplified-chinese-menu 2.tree-view-finder 3.minimap 4.linter和linter-jshint 5.linter-js-standard 6 ...

  3. Expression Blend实例中文教程系列

    Expression Blend实例中文教程系列 本系列文章均转载:银光中国 时间:2010-04-09 09:20责任编辑:银光中国网 点击:次 Expression Blend实例中文教程系列由C ...

  4. POJ - 1330 Nearest Common Ancestors(dfs+ST在线算法|LCA倍增法)

    1.输入树中的节点数N,输入树中的N-1条边.最后输入2个点,输出它们的最近公共祖先. 2.裸的最近公共祖先. 3. dfs+ST在线算法: /* LCA(POJ 1330) 在线算法 DFS+ST ...

  5. 【转】Echarts的使用以及动态加载数据

    一.Echarts的介绍 ECharts开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新 ...

  6. lua 与 c 的相互调用

    Lua是一个嵌入式的语言,意味着Lua不仅可以是一个独立运行的程序包也可以是一个用来嵌入其他应用的程序库. Lua可以作为程序库用来扩展应用的功能,也就是Lua可以作为扩展性语言的原因所在.同时,Lu ...

  7. MVC接受JSON的一些注意事项

    1.MVC接受前端传的JSON数据,相应的接受参数的位置使用@RequestBody注解进行标注 2.JSON传空字符串时,后台使用Integer进行接受时,会报for String ''一堆乱七八糟 ...

  8. Codeforces Round #386 (Div. 2)G. New Roads [构造][树]

    题目链接:G. New Roads 题意:给出n个结点,t层深度,每层有a[i]个结点,总共有k个叶子结点,构造一棵树. 分析: 考虑一颗树,如果满足每层深度上有a[i]结点,最多能有多少叶子结点 那 ...

  9. 洛谷 P3731 [HAOI2017]新型城市化【最大流(二分图匹配)+tarjan】

    我到底怎么建的图为啥要开这么大的数组啊?! 神题神题,本来以为图论出不出什么花来了. 首先要理解'团'的概念,简单来说就是无向图的一个完全子图,相关概念详见度娘. 所以关于团一般都是NP问题,只有二分 ...

  10. 第四篇(那些JAVA程序BUG中的常见单词)

    xxx cannot be resolved to a variable xxx无法解析为变量 resolve 解析