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方法,错误的配置很容易导致安全问题,一般情况下不建议启用。

  • 相关阅读:
    2014.12.31今年最后的一天
    leetcode11 盛最多水的容器(Medium)
    leetcode23 合并k个排序链表(Hard)
    leetcode148 排序链表(Medium)
    leetcode48 旋转图像(Medium)
    leetcode227基本计算器II (Medium)
    leetcode338 比特位计数(Medium)
    leetcode32 最长有效括号(Hard)
    leetcode面试题10.01 合并排序的数组(Easy)
    leetcode55 跳跃游戏(Medium)
  • 原文地址:https://www.cnblogs.com/c-jw/p/13850468.html
Copyright © 2011-2022 走看看