zoukankan      html  css  js  c++  java
  • http协议详解

    1. Http协议是怎么工作的

    http协议定义了web客户端如何从web服务器请求web页面,以及服务器如何把web页面传送给客户端

    1.1客户端连接到web服务器
    一个http客户端,通常是浏览器,与web服务器的http(端口默认是80),建立一个TCP套接字连接
    1.2发送http请求
    通过tcp套接字,客户端向web服务器发送一个文本的请求报文,一个请求报文由请求头、请求行、空行以及请求数据四部分组成
    1.3服务器接收到请求并返回http响应
    web服务器解析请求,定位请求资源,服务器将资源复本写到TCP套接字,由客户端读取,一个响应由状态行、响应头部、空行(请求空行)和响应数据(请求体)四部分组成,
    1.4释放连接TCP
    若connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接,若connection模式为keepalive,则连接会保持一段时间,在这段时间内可以继续接收请求
    1.5客户端浏览器解析HTML内容

    2. Http协议中的get和post的区别

    2.1从参数传递方面:
    Get请求的参数是直接拼接在地址栏url的后面,post请求的参数是放在请求体中
    2.2从长度方面:
    Get请求有具体的请求大小限制,一般不超过1024bytes,而post理论上没有,但是浏览器一般有界限
    2.3从安全方面:
    Get请求相比较于post,数据明文显示在地址URL中,所以安全性和私密性不如post
    总结:
    从本质上来说,二者都是TCP连接,并无实质上的区别,但是由于http/浏览器的限定,导致他们在应用过程中有一定的区别,Get产生一个数据包,Post产生两个数据包,对于Get请求,浏览器会把http header和data一并发出去,服务器响应200,而对于Post,浏览器会先发送header,服务器会响应100continue,浏览器再发送data,服务器响应200

    3. Http请求方法和响应代码

    注:红叉是比较危险的HTTP方法,错误的配置很容易导致安全问题,一般情况下不建议启用。

  • 相关阅读:
    如何解决由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
    客户端中检测到有潜在危险的Request.Form 值的处理办法 VS2010 .NET 4.0
    VS2010中解决数据集和ObjectDataSource无法自动生成UPDATA和DELETE方法
    使用Eclipse的几个必须掌握的快捷方式
    使用OjectDataSource数据源绑定ListView 高效分页
    NVIDIA SDK 10
    [转]我要的不多
    本月推荐电影
    加/解密
    GDC 2007 Presentations of NV now available.
  • 原文地址:https://www.cnblogs.com/c-jw/p/13850468.html
Copyright © 2011-2022 走看看