网络-白话详解HTTP (一)

网络-白话详解HTTP (一)

HTTP目录

上一周开始准备毕设相关的基础知识的积累,重新学习了一下网络部分。
本文用自己理解的简单方式分析HTTP,分为HTTP的工作流程、请求方法、常用术语、TCP 三次握手与四次挥手、请求报文与响应报文分析等五个部分展开讲解。

一、HTTP简介

  1. 什么是HTTP?
    HTTP 是超文本传输协议,是一种应用层协议,基于TCP/ IP通信协议来传递数据。
    HTTP 工作在C/S 模型上, 客户端与服务器的通信采用 request/response 机制。

  2. HTTP工作流程?
    (1)建立TCP连接 (2)浏览器向客户机发送请求命令 (3)浏览器发送请求头信息
    (4)服务器应答 (5)服务器发送应答头信息 (6)服务器向客户端发数据 (7) 服务器关闭TCP连接

    (1)建立TCP连接
    浏览器要与服务器建立连接,是通过TCP来完成的,默认端口为80。
    (2)浏览器发送请求命令
    TCP连接后,浏览器就会向服务器发送请求命令 (POST/ GET)。
    (3)浏览器发送请求头信息
    发送请求命令后,以头信息的形式向服务器发送其他信息,最后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。
    (4)服务器应答
    服务器应答, HTTP/1.1 200 OK ,协议的版本号和应答状态码。
    (5)服务器发送应答头信息
    服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。
    (6)服务器向客户端发数据
    发送头信息后,空白行表示头信息发送结束,后以Content-Type开头发送用户所请求的实际数据
    (7) 服务器关闭TCP连接
    服务器向浏览器返回了请求数据,它就要关闭TCP连接。

  3. HTTP特点
    (1) C/S 模型:基于客户端/ 服务器的架构模型
    (2) 无连接 :一次连接只处理一个请求,处理完请求立即断开连接
    (3) 无状态 : 对事务的处理没有记忆能力,上一次的操作不用去管。

二、HTTP请求方法

HTTP/1.1新增5种后,有8种请求方法。
GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT

  1. GET 请求 【查】
    用于获取指定URL页面的信息。

  2. POST 请求 【增】
    向指定资源提交数据进行处理请求。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

    注:PUT 与POST 请求的区别?
    核心:GET 主要用于从服务器获取数据 ; POST主要是向服务器修改处理数据。
    

(1) GET 使用URL或Cookie传参, POST 将数据放在Body里。
(2) GET的URL有长度限制, 而POST 的数据可以传送很大。
(3) POST比GET更安全一些, POST 的数据在地址栏不可见。
(4) GET产生一个TCP数据包;POST产生两个TCP数据包; 网络状态差,两个数据包更能保证数据的完整性。

  1. PUT 请求 【改】
    从客户端向服务器传送的数据替换指定的文档的内容。
 注:GET 与 POST请求的区别??  
  PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源)
  POST 请求:后一个请求不会把第一个请求覆盖掉,而是追加在后面  (所以POST用来增资源)
  1. DELETE 请求 【删】
    请求服务器删除指定界面
    注:不能保证客户端的删除一定被执行,因为HTTP 允许服务器不通知客户端就撤销请求。
  2. HEAD 请求
    只请求资源的首部
    HEAD方法跟GET方法相同,只不过服务器响应时不会返回消息体。这种方法可以用来获取请求中隐含的元信息,而不用传输实体本身。也经常用来测试超链接的有效性、可用性和最近的修改。
  3. OPTIONS 请求
    允许客户端查看服务器的性能。
  4. TRACE 请求
    回显服务器收到的请求,主要用于测试或诊断。
  5. CONNECT 请求
    HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

三、HTTP术语

此处属于包括cookie,header ,body

  1. cookie
    起源:cookie是保存在用户浏览器端的,并在发出http请求时会默认携带的一段文本片段。它可以用来做用户认证(帐号/密码),服务器校验等通过文本数据可以处理的问题。 起源:cookie是保存在用户浏览器端的,并在发出http请求时会默认携带的一段文本片段。它可以用来做用户认证(帐号/密码),服务器校验等通过文本数据可以处理的问题。
    作用:
    (1)会话管理 :
    记录用户的登录状态,服务器会在用户登录成功后下发一个签名来标记session的有效性,这样免去了用户多次认证和登录网站。
    (2) 记录用户相关信息
    如:记录上次的相关密码,下次登录不用重复填写。
    (3) 记录用户行为
    如: 记录用户的点击率,和对某个商品的操作率等。

实现流程:
客户端发起http请求到特定的服务器;服务器返回http response,其中可以包含Cookie设置;
后续访问服务器的相关页面就会发送拿到的cookie去访问。

组成:
name: 一个唯一确定的cookie名称;
value:存储在cookie中的字符串值;
domain:cookie对于哪个域是有效的。
path: 表示这个cookie影响到的路径,浏览器会向指定域中匹配的路径发送cookie。
expires:失效时间,表示cookie何时应该被删除的时间;

  1. header
    含义 :header是指HTTP的头域,无论是请求还是发送都具备一个或者多个头域。
    位置:位于请求行或响应行的后面
    分类 :通用头、请求头、响应头和实体头
    简介:
    (1) 通用头 :请求和响应消息都支持的头域
    通用头域包含请求和响应消息都支持的头域,包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via .
    Cache-Control: 指定请求和响应遵循的缓存机制。
    Connection: 表 示是否需要持久连接
    Date : 消息发送的时间GMT ;
    pragma :用来包含实现特定的指令,如Pragma:no-cache (服务器必须返回一个刷新后的文档)。

(2)请求头:允许客户端向服务器传递关于请求或者关于客户机的信息
请求头包含Accept、Accept- Encoding、Accept-Language、Host、Range、Refere、User-Agent等; 详解在请求头结构中。

(3) 响应头:描述服务器的信息和Request-URL进一步的信息
响应头包含Age、 Location、Proxy-Authenticate、Public、Retry-After、Server、Vary、Warning、WWW- Authenticate等; 部分详解在响应头结构中。

(4) 实体头:包含关于实体的原信息
实体头包含Allow、Content-Encoding、Content-Language、Content-Length、Content-Range、Content-Type、Last-Modified等;
Allow:服务器支持哪些请求方法(如GET、POST等)。
Content-Encoding : 内容文档的编码方法。
Last-Modified: 文档的最后改动时间。

  1. body
    含义:是指请求或响应中发送的实际数据;
    位置: 在一个空行之后,空行将header 与body 分开;
    作用: 用于存放请求或修改的实际数据。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值