http是无状态的,不会记得“上个请求***”,所以哪怕是同一个页面中的js、css、jpg也都要重复的提交Accept-Language、Accept-Encoding、Cookie等。
一般情况下,只有浏览器请求服务器端,服务器端才有给浏览器响应数据,服务器不会主动向浏览器推送数据,这样是安全考虑,也是提高服务器的性能考虑。
如果要服务器向浏览器推送数据,则需要使用ServerPush(ajax隔一段时间到服务器请求最新的数据)等额外的技术。 

客户机和服务器通信就好像打电话一般
•咱们用中文还是用英文?(约定通信的语法-http协议)
•准备好要说的话 (按照语法准备要传输给对方的数据)
•拨通电话(建立连接)
•通过电话机/电话线说话(通过互联网传输数据-Socket)
•注意:两个人都得拿对话筒(通信双方关注接收对方的数据)
 
•"200" : OK
•"302" : Found 重定向.
•"400" : Bad Request 错误请求,发出错误的不符合Http协议的请求
•"403" : Forbidden 禁止
•"404" : Not Found 未找到。演示访问一个不存在的页面看报文
•"500" : Internal Server Error 服务器内部错误。演示页面抛出异常。
•"503" : Service Unavailable。一般是访问人数过多。
 
200段是成功;
300段需要对请求做进一步的处理;
400段表示客户端请求错误;
500段是服务器的错误。
HTTP协议-简介
1:Web开发是和Http协议打交道的,必须了解Http协议。Http协议版本:Http/0.9、Http/1.0、Http/1.1,现在主流的是Http/1.1版本
 
2:Http协议分析工具:
•1、DebugBar,Http(S)标签的内容。免费的。只能分析当前浏览器中的内容。
•2、httpwatch,收费的,只能分析当前浏览器中的内容。推荐使用
•3、HttpAnalyzer,收费的,能分析计算机上所有的Http请求数据。
•4、WFetch_1.4,免费,小型分析工具
 
3:Http协议的几个概念:
•1.连接(Connection):浏览器和服务器之间传输数据的通道。 一般请求完毕就关闭,http不保持连接。
                              不保持连接会降低处理速度(因为建立连接速度很慢),保持连接的话就会降低服务器的处理的客户端请求数,而不保持连接服务器可以处理更多的请求。
•2.请求(Request):浏览器向服务器发送的“我要***”的消息,包含请求的类型、请求的数据、浏览器的信息(语言、浏览器版本等)。
•3.响应(Response):服务器对浏览器请求的返回的数据,包含是否成功、状态码等。
 
请求报文:
1:GET / HTTP/1.1表示向服务器用GET方式请求首页,使用HTTP/1.1协议
2:Accept-Encoding gzip, deflate表示浏览器支持gzip、deflate两种压缩算法
3:Accept-Language zh-cn 表示浏览器支持的语言,很多进入后自动就是中文界面的国际网站就是通过读取这个头的值实现的。
4:User-Agent为浏览器的版本信息。通过这个信息可以读取浏览器是IE还是FireFox、支持的插件、.Net版本等。
5:Cookie是浏览器向服务器发送和当前网站关联的Cookie,这样在服务器端也能读取浏览器端的Cookie了。
6:Connection Keep-Alive。一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了Connection:keep-alive,则TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。
 
响应报文:
1:Server: Cassini/3.5.0.5 表示服务器的类型
2:Content-Type: 常用Content-Type:text/HTML、harset=utf-8、 image/GIF、image/JPEG、text/plain、text/javascript、application/x-excel 、application/octet-stream(二进制文件)
3:Content-Length: 19944表示响应报文体的字节长度,报文头只是描述,返回的具体数据(比如HTML文本、图片数据等)在两个回车之后的内容中。
服务器通过Content-Type告诉客户端响应的数据的类型,这样浏览器就根据返回数据的类型来进行不同的处理,如果是图片类型就显示,如果是文本类型就直接显示内容,如果用html类型就用浏览器显示内容,如果是下载类型就弹出下载工具等。
 
 

ASP.NET HTTP 协议的更多相关文章

  1. [ASP.NET] Http协议GET与POST

    引言 HTTP 协议我想任何IT人士都耳熟能详了,大家都能说出个所以然来.但是如果我问你HTTP协议的请求方法有哪些?POST与GET的差异?GET或POST传送数据量的大小有限制吗?HTTP响应的状 ...

  2. TCP/UDP常见端口参考

    著名端口 端口号码 / 层 名称 注释 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat ...

  3. TCP/IP 端口号大全

    常用端口: 20 ftp-data FTP 数据端口 21 ftp 文件传输协议(FTP)端口:有时被文件服务协议(FSP)使用 22 ssh 安全 Shell(SSH)服务 23  telnet T ...

  4. CCNA长语

    思科认证网络支持工程师(Cisco Certified Network Associate_CCNA) 专业英文词汇大全 10BaseT-----原始IEEE802.3标准的一部分,1OBaseT是1 ...

  5. C#使用SOAP调用Web Service

    程序代码 using System;using System.IO;using System.Net;using System.Text; namespace ConsoleApplication1{ ...

  6. linux 常用端口

    常用端口 下面的表格中列举了包括在红帽企业 Linux 中的服务.守护进程.和程序所使用的最常见的通信端口.该列表还可以在 /etc/services 文件中找到.要查看由互联网号码分派局(IANA) ...

  7. 网络-03-端口号-linux端口详解大全--著名端口

    端口号码 / 层 名称 注释 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat 用于列举 ...

  8. TCP/UDP常见端口

    著名端口 端口号码 / 层 名称 注释 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat ...

  9. TCP/IP 端口大全

    1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat 用于列举连接了的端口的系统状态 13 ...

随机推荐

  1. 2018年1月 attribute VS prop 动画渲染

    attribute和prop和UI存在单向/双向绑定关系,参考 https://m.aliyun.com/yunqi/articles/31499 渲染流程 重绘和重排 ? requestAnimat ...

  2. vue学习笔记-初始化一个vue项目(1)

    1.cnpm install -g vue-cliUsage:vue init <template-name> <project-name> 2.我们一般使用webpack模版 ...

  3. RecyclerView中设置match_parent无效;

    在RecyclerView中宽度设置了match_parent,但是效果和wrap_content一样: 说下解决方法: 1.这样子写,match_parent没有效果: View v = View. ...

  4. 在Raid模式下装Win10找不到固态硬盘怎么办

    现在新出厂的笔记本电脑中,系统的BIOS内,SATA Controller Mode默认设置的是为Intel RST Premium模式,该模式会将硬盘组成磁盘阵列的模式(Raid模式),而原版的Wi ...

  5. 使用路由和远程访问服务为Hyper-V中虚拟机实现NAT上网

    众所周知,在微软的Hyper-V环境中的网络环境中没有VMware Workstation中的NAT功能,所以Hyper-V环境中虚拟机上网一般情况下需要通过设置为外部网络方可访问网络,当然也可设置为 ...

  6. 当别人给你一个wsdl或者webservice接口时

    一  通过wsdl生成客户端 引用于http://www.cnblogs.com/yisheng163/p/4524808.html 参照http://www.cnblogs.com/xdp-gacl ...

  7. android_自定义布局例子

    为什么要写自定义布局: 1.在实现大量重复的子按键或者子布局时,如果一个一个去复写工作量庞大,就需要创建自定义布局直接导入布局里,可以节省大量的时间 创建自定义布局的步骤: 1.编写一个自定义xml布 ...

  8. apache atlas资料收集

    apache atlas  http://atlas.apache.org/ http://blog.csdn.net/ganglia/article/details/51457691

  9. spring boot 自定义视图路径

    boot 自定义访问视图路径 . 配置文件 目录结构 启动类: html页面 访问: 覆盖boot默认路径引用. 如果没有重新配置,则在pom引用模板. 修改配置文件. 注意一定要编译工程

  10. Running a jupyter notebook server

    你也许需要服务器运行jupyter notebook 阿里云: https://yq.aliyun.com/articles/98527 关于更安全的证书访问: http://jupyter-note ...